Ошибка: невозможно получить доступ к лексическому объявлению

let textBytes = ctypes.uint8_t("hello"); 
let a = new SECItem;
a.type = siBuffer;
a.data = textBytes.address();
a.len = textBytes.length;

Я получил ReferenceError: не могу получить доступ к лексическому объявлению textBytes до инициализации.

1 ответ

Я не могу воспроизвести ошибку ссылки, которую вы получаете, но я думаю, что изменить

let textBytes = ctypes.uint8_t("hello"); 

как это бросает TypeError: expected type uint8_t, got "hello" в

let textBytes = ctypes.uint8_t.array()("hello"); 

Это даст вам строку с нулевым символом в конце длины 6. Если вы хотите, чтобы она была длиной 5, нет нулевого завершения, тогда выполните let textBytes = ctypes.uint8_t.array(5)("hello");

как я думаю, поменяй

let a = new SECItem;

в

let a = SECItem();

или же let a = new SECItem(); они оба одинаковы.

Если это не помогает, поделитесь структурой SECItem и что siBuffer,

Другие вопросы по тегам