Firefox ctypes.js无法打开带有依赖项的DLL

时间:2016-05-06 05:36:43

标签: firefox dll firefox-addon firefox-addon-sdk jsctypes

我已将项目上传到Github以显示问题:https://github.com/EamonnLaffey/ctypes-test

我正在使用ctypes.open()来加载一个简单地调用依赖dll函数的dll来打印一条消息。

在扩展名的数据文件夹中有两个dll。还有一个可执行文件,test.exe调用扩展程序试图调用的相同函数来验证它是否正常工作。

要获取dll的路径,我在扩展名的package.json中设置"unpack": true,并在index.js中调用以下内容:

var dllPath = Services.io.newURI(data.url('operations.dll'), null, null).QueryInterface(Ci.nsIFileURL).file.path;`

这将返回诸如

之类的路径
C:\Users\Eamonn\AppData\Local\Temp\1\f6ff0a5f-64b9-4953-a7a4-cb5b0a16c29c\exten‌​sions\@extension\data\operations.dll

当我手动转到路径时,我可以按预期看到operations.dll,supports.dll和test.exe。运行test.exe将成功加载operations.dll,然后加载supports.dll。

但是,在路径上调用ctypes.open()时会返回以下错误:

console.error: ctypes-test-ext:
  Message: Error: couldn't open library C:\Users\Eamonn\AppData\Local\Temp\1\f6ff0a5f-64b9-4953-a7a4-cb5b0a16c29c\exten‌​sions\@extension\data\operations.dll: error 126

当我加载一个没有任何依赖dll的dll ctypes.open()

0 个答案:

没有答案