9
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 在初始化之前。

4

1 回答 1

0

我无法重现您得到的参考错误,但我认为改变

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.

于 2015-06-27T09:11:32.237 回答