memset не имеет DLL, поэтому как его ввести

Как использовать memset в jsctypes. Для него нет DLL. Я искал / просматривал коды js ctype, но не смог найти пример для копирования.


person Noitidart    schedule 28.06.2014    source источник


Ответы (1)


Если вы просто хотите memset массива с нулевыми байтами, то у меня есть «Хорошие новости для всех»: js-ctypes инициализирует новые массивы нулем.

В противном случае было бы проще просто создать типизированный массив, инициализировать его и создать указатель на него.

По-видимому, в наши дни вы также можете устанавливать элементы массива непосредственно в массиве ctypes (при условии, что тип массива имеет известный размер)...

// Note that size is the number of array elements to set,
// not the number of bytes.
function memset(array, val, size) {
 for (var i = 0; i < size; ++i) {
   array[i] = val;
 }
}

var a = ctypes.uint8_t.array()(10);
memset(a, 0xde, a.length);
console.log(a.toSource());
// "ctypes.uint8_t.array(10)([222, 222, 222, 222, 222, 222, 222, 222, 222, 222])"
person nmaier    schedule 28.06.2014
comment
Ты шутишь, что ли? Чувак, у меня есть некоторые фундаментальные проблемы, я обыскал мир..... Как я могу научиться быть экспертом в js-ctype? :( - person Noitidart; 28.06.2014
comment
Сначала станьте экспертом по C и C++, а затем экспертом по Javascript. Погружение в (js-)ctypes методом проб и ошибок. Остальное потом легко :p. Нет, я бы не назвал себя экспертом, если честно, но знающим, может быть. - person nmaier; 28.06.2014
comment
:( Я попытаюсь начать с изучения этих массивов ctypes, они полностью отличаются от того, к чему я привык, я думаю. - person Noitidart; 28.06.2014
comment
Я думаю, что достиг статуса эксперта по js-ctypes :D Я только что развернул свой первый аддон, в значительной степени полагающийся на jsctypes, он нуждается в улучшении производительности, но эти комментарии заставили меня вспомнить! Проверьте это! addons.mozilla.org/en-US/firefox/addon/nativeshot - person Noitidart; 01.08.2015