let textBytes = ctypes.uint8_t("hello");
let a = new SECItem;
a.type = siBuffer;
a.data = textBytes.address();
a.len = textBytes.length;
我得到 ReferenceError: can't access lexical declaration textBytes 在初始化之前。
let textBytes = ctypes.uint8_t("hello");
let a = new SECItem;
a.type = siBuffer;
a.data = textBytes.address();
a.len = textBytes.length;
我得到 ReferenceError: can't access lexical declaration textBytes 在初始化之前。
我无法重现您得到的参考错误,但我认为改变
let textBytes = ctypes.uint8_t("hello");
TypeError: expected type uint8_t, got "hello"
因为这会引发
let textBytes = ctypes.uint8_t.array()("hello");
这将为您提供一个长度为 6 的以 null 结尾的字符串。如果您希望它的长度为 5,则没有 null 终止然后执行let textBytes = ctypes.uint8_t.array(5)("hello");
正如我所想,改变
let a = new SECItem;
至
let a = SECItem();
或者let a = new SECItem();
它们都是相同的。
如果这不能解决它,请分享结构SECItem
和什么是siBuffer
.