Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript ctypes字符串到无符号字符_Javascript_C_Firefox_Firefox Addon_Jsctypes - Fatal编程技术网

javascript ctypes字符串到无符号字符

javascript ctypes字符串到无符号字符,javascript,c,firefox,firefox-addon,jsctypes,Javascript,C,Firefox,Firefox Addon,Jsctypes,我有一个共享的C库,它期望unsigned char*作为参数之一 让Javascript字符串成为无符号字符*的最佳方法是什么 在我的js文件中,我将paramater声明为ctypes.unsigned_char.ptr,但仅仅将javascript字符串作为参数传入并不可行 这一切都是在firefox扩展的上下文中完成的。这是我对函数的声明 var myfunction = mylib.declare("function", ctype

我有一个共享的C库,它期望
unsigned char*
作为参数之一

让Javascript字符串成为无符号字符*的最佳方法是什么

在我的js文件中,我将paramater声明为ctypes.unsigned_char.ptr,但仅仅将javascript字符串作为参数传入并不可行

这一切都是在firefox扩展的上下文中完成的。这是我对函数的声明

var myfunction = mylib.declare("function",
                           ctypes.default_abi,
                           ctypes.int,
                           ctypes.unsigned_char.ptr,
                           ctypes.long);
其中mylib是我用ctypes模块加载共享库的变量

以下内容:

  • 将参数声明为
    ctypes.uint8\t
  • 将参数作为
    ctypes.uint8\u t.ptr(新的Uint8Array(…))
    传递

您是如何将javascript数据发送到c程序的?这是一个firefox扩展,因此我使用ctype模块并加载共享库。。将发布一个带有声明的编辑,当您说“仅仅将javascript字符串作为参数传递进来是不正确的”,您的意思是什么?虽然JavaScript在内部使用UCS-2或UTF-16,但实际上大多数使用UTF-16。通过将JavaScript字符串声明为
ctypes.char.ptr
,我可以将JavaScript字符串传递给需要纯ASCII的c库。是否有一些你试图通过的特定角色不起作用?您正在尝试传递类型化数组中存储的二进制数据吗?你有没有收到一些具体的错误信息?!?你读过这个吗?()它解释了如何将JavaScript字符串转换为UTF-8和UTF-16<代码>无符号字符对于字符串来说非常少见?你真的想使用UTF-8,还是想传递二进制数据?我想传递二进制数据