2013-06-05 2 views
0

У меня есть общая библиотека C, которая ожидает unsigned char * как один из PARAMATERSJavascript ctypes Строка для беззнаковых символов

Что является лучшим способом, чтобы получить строку Javascript быть неподписанные символ *?

В моем файле JS, у меня объявлен В параметре ctypes.unsigned_char.ptr, но он не будет owrk просто передать яваскрипта строку в качестве параметров, которые

Это все делается в контексте firefox расширение. Вот мое заявление о функции

var myfunction = mylib.declare("function", 
          ctypes.default_abi, 
          ctypes.int, 
          ctypes.unsigned_char.ptr, 
          ctypes.long); 

Где mylib - это var i, загруженный общим lib с помощью модуля ctypes.

+0

Как вы получаете данные javascript в программу c? – Magn3s1um

+0

Это расширение firefox, поэтому я использую модуль ctype и загружаю shared lib. .. .. опубликует изменение с объявлением – Derek

+0

Когда вы говорите: «Это не будет, чтобы просто передать строку javascript в качестве параметров», что вы имеете в виду? Хотя JavaScript внутренне использует UCS-2 * или * UTF-16, на практике большинство используют UTF-16. У меня не было проблем с передачей строк JavaScript в библиотеки c, которые требуют простой ASCII, объявив их как 'ctypes.char.ptr'. Есть ли определенный характер, который вы пытаетесь передать, который не работает? Вы пытаетесь передать двоичные данные, хранящиеся в типизированных массивах? Вы получаете определенное сообщение об ошибке?!? –

ответ

1

should work Следующая:

  • Объявляет аргумент как ctypes.uint8_t.
  • Передайте аргумент как ctypes.uint8_t.ptr(new Uint8Array(...)).