Javascript 如何使用js ctypes Firefox扩展调用本机C代码?
我正在尝试构建一个Firefox扩展,它需要调用本机C代码 我的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
#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'));