Ошибка: невозможно получить доступ к лексическому объявлению
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
,