首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用节点ffi调用setDllDirectory

使用节点ffi调用setDllDirectory
EN

Stack Overflow用户
提问于 2017-01-26 08:31:58
回答 1查看 679关注 0票数 1

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

THe问题是在加载dll之后,当调用

代码语言:javascript
复制
   var myfunc = ffi.Library("myLibrary", {"test":["string",["string"]]})

它无法找到myLibrary所依赖的第三方dll,尽管它们位于同一个目录中。我试图在这行之前调用setDllDirectory,方法如下:

代码语言:javascript
复制
  var setdl = ffi.Library("kernel32", {'SetDllDirectory':["bool",["string"]]})

然后打电话给塞德尔。但是,在其上方的setdl行中有一个错误:

代码语言:javascript
复制
 Uncaught Error: Dynamic Symbol Retrieval Error: Win32 error 127(…)

我怎么才能解决这个问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-26 08:45:25

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

SetDllDirectory()函数有两个版本:

  • ANSI的SetDllDirectoryA
  • 用于Unicode的SetDllDirectoryW

DLL不导出实际名为SetDllDirectory()的函数,因此出现错误。相反,它导出了另外两个函数。

此信息在文档中说明。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41869463

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档