Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/475.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 如何使用js ctypes Firefox扩展调用本机C代码?_Javascript_C_Firefox Addon_Jsctypes - Fatal编程技术网

Javascript 如何使用js ctypes Firefox扩展调用本机C代码?

Javascript 如何使用js ctypes Firefox扩展调用本机C代码?,javascript,c,firefox-addon,jsctypes,Javascript,C,Firefox Addon,Jsctypes,我正在尝试构建一个Firefox扩展,它需要调用本机C代码 我的C程序代码是: #include<windows.h> int add(int a, int b) { return(a + b); } 调用binaryFile函数时,我得到了错误信息 Couldn't find function symbol in library 请帮帮我。 提前感谢。如果您的插件是无重启插件,请确保将设置为true。插件必须打开包装 太棒了,你正在深入插件!请参阅此repo:它显示ma

我正在尝试构建一个Firefox扩展,它需要调用本机C代码

我的C程序代码是:

#include<windows.h>
int add(int a, int b)
{
    return(a + b);
}
调用
binaryFile
函数时,我得到了错误信息

Couldn't find function symbol in library
请帮帮我。
提前感谢。

如果您的插件是无重启插件,请确保将
设置为true
。插件必须打开包装

太棒了,你正在深入插件!请参阅此repo:它显示main.cpp的代码,main.cpp被编译成DLL,然后导入并使用

您必须公开
add
函数

顺便说一句,如果您正在执行引导加载项:也可以尝试执行
ctypes。在
startup()函数中打开
。但你没有,你正在做一个插件SDK插件,所以你应该没事。但对于您的导入,请执行以下操作:

lib = ctypes.open(self.data.url('Win32Project1.dll'));
这样你就不必知道绝对路径。特别是因为
\\
文件分隔符仅适用于Windows。类Unix系统(MacOSX、Linux等)使用
/

如果需要更多帮助,请加入moz jsctypes IRC频道:)

  • irc://moznet/jsctypes

这里是我的网站,有完整的代码可用

你不应该使用
int
而不是
int32\t
?为共享链接干杯!确实帮我整理了我的东西:)将在频道上与你联系,了解有关附加组件的更多信息。在XPCOM的帮助下,我的头脑更加清醒。再次感谢.self.data.url('someFile.dll')在ctypes.open中给出无法打开库的错误resources://....I 我自己通过使用var dataUrl=self.data.url(“udp_client.dll”)解决了这个问题;dataUrl=Services.io.newURI(dataUrl,null,null).QueryInterface(Ci.nsIFileURL).file.path;。谢谢你在那里的工作!谢谢分享!这可能会帮助像我这样的人。:)
lib = ctypes.open(self.data.url('Win32Project1.dll'));