我已经上传了一个项目,Github上显示的问题: https://github.com/EamonnLaffey/ctypes-test
我使用ctypes.open()
加载DLL,简单地调用一个依赖DLL它打印的消息的功能。
在扩展的数据文件夹是两个DLL。 还有一个可执行,TEST.EXE调用扩展试图调用,以验证它正在相同的功能。
为了让我设置了DLL的路径"unpack": true
的分机的package.json,并呼吁在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\extensions\@extension\data\operations.dll
当我手动去的路径,我可以看到operations.dll,supporting.dll和test.exe的预期。 运行的test.exe将成功加载operations.dll然后加载supporting.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\extensions\@extension\data\operations.dll: error 126
当我加载不具有任何依赖的DLL一个dll ctypes.open()
的作品