Winapi 使用节点ffi调用setDllDirectory

Winapi 使用节点ffi调用setDllDirectory,winapi,node-ffi,Winapi,Node Ffi,我正在使用节点ffi模块调用我自己的dll中的本机windows函数。我的dll依赖于同一目录中的其他第三方dll 问题是,加载dll后,调用 var myfunc = ffi.Library("myLibrary", {"test":["string",["string"]]}) 它找不到myLibrary所依赖的第三方DLL,尽管它们位于同一目录中。我尝试在此行之前通过以下方式调用setDllDirectory: var setdl = ffi.Library("kernel32

我正在使用节点ffi模块调用我自己的dll中的本机windows函数。我的dll依赖于同一目录中的其他第三方dll

问题是,加载dll后,调用

   var myfunc = ffi.Library("myLibrary", {"test":["string",["string"]]})
它找不到myLibrary所依赖的第三方DLL,尽管它们位于同一目录中。我尝试在此行之前通过以下方式调用setDllDirectory:

  var setdl = ffi.Library("kernel32", {'SetDllDirectory':["bool",["string"]]})
然后调用setdl。但是我在setdl行中发现了一个错误:

 Uncaught Error: Dynamic Symbol Retrieval Error: Win32 error 127(…)

如何修复此问题?

错误127是
错误过程未找到(“未找到指定的过程”)

有两种版本的
setdldirectory()
函数:

  • SetDllDirectoryA
    用于ANSI
  • SetDllDirectoryW
    用于Unicode
DLL不导出实际名为
SetDllDirectory()
的函数,因此出现错误。它将导出另外两个函数

该信息在以下文件中说明:


错误127是
找不到错误过程
(“找不到指定的过程”)

有两种版本的
setdldirectory()
函数:

  • SetDllDirectoryA
    用于ANSI
  • SetDllDirectoryW
    用于Unicode
DLL不导出实际名为
SetDllDirectory()
的函数,因此出现错误。它将导出另外两个函数

该信息在以下文件中说明: