我正在使用node ffi模块来调用我自己的dll中的本机窗口函数。我的dll取决于同一目录中的其他第三方dll。
问题是在加载调用时提到我的dll
var myfunc = ffi.Library("myLibrary", {"test":["string",["string"]]})
虽然myLibrary位于同一目录中,却无法找到myLibrary所依赖的第三方dll。我试图在此行之前调用setDllDirectory:
var setdl = ffi.Library("kernel32", {'SetDllDirectory':["bool",["string"]]})
然后调用setdl。但是我在setdl行上面出现错误:
Uncaught Error: Dynamic Symbol Retrieval Error: Win32 error 127(…)
我该如何解决这个问题?
答案 0 :(得分:4)
错误127是ERROR_PROC_NOT_FOUND
(“无法找到指定的过程”)。
SetDllDirectory()
函数有两个版本:
SetDllDirectoryA
。SetDllDirectoryW
用于Unicode。 DLL不会导出实际名为SetDllDirectory()
的函数,因此会出错。它改为输出另外两个函数。
此信息在documentation:
中说明