错误:无法访问词法声明

问题描述 投票:0回答:1
let textBytes = ctypes.uint8_t("hello"); 
let a = new SECItem;
a.type = siBuffer;
a.data = textBytes.address();
a.len = textBytes.length;

我得到了 ReferenceError:无法在初始化之前访问词法声明 textBytes。

javascript firefox-addon jsctypes nss
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
是什么。

© www.soinside.com 2019 - 2024. All rights reserved.