我想调用一个用"C"DLL从node.js javascript
I want to call a function which is written in "C" DLL from node.js javascript?
我想从node.js javascript调用一个用"C" DLL编写的函数。我在node.js和electron中使用"ffi"模块。我想调用的函数是"int FDColor_GetSWVersion(char* softwareVersion)"。我使用下面的代码:
var libm = ffi.Library(__dirname + "''viewmodels''FDColor.dll", {
'FDColor_GetSWVersion': [ 'int', ['string' ] ]
});
但我得到错误"动态链接错误:Win32错误126"。有人能帮我一下吗
当你得到"指定的模块无法找到"时,这是指你试图加载的DLL或它的任何依赖项。
你已经给出了ffi.Library
函数的完整路径,但是当FDColor.dll加载它的依赖项时,它可能不会使用路径,这导致LoadLibrary首先在进程的当前工作目录中查找,然后在path环境变量的目录中查找。
-
使用DependencyWalker (http://www.dependencywalker.com/)在FDColor.dll上查看它是否有任何依赖项。要做到这一点,最好的方法是从调用此脚本的相同位置调用它(给出传递给ffi.Library的相同路径)。
-
对于它试图加载但未找到的每个DLL,您需要将该文件夹添加到调用该脚本的环境的PATH环境变量中。
-
在命令提示符下设置PATH后,您可以通过重复步骤1来检查是否正确执行了此操作。DependencyWalker现在将显示它可以找到这些dll。
相关文章:
- 铬:“;未捕获的语法错误:意外的标记:"
- 可以设置“;文件名"发生错误时显示的内联脚本标记的
- JS表单提交"无法使用Chrome数据保护程序加载此页面.尝试重新加载页面.调试信息:POST CISmtuK
- 检测电话窃听,即:<a href="电话:xxx">在UIWebview上
- 使用“+="操作人员
- //而不是在src=“”上使用http://"属性
- "未捕获的语法错误:意外的标记}"
- 可以<脚本类型=“;text/javascript”>window.location=“/"</
- "实例范围”;TypeScript类的getter/setter
- Javascript复选框函数:;缺少:在属性id之后"
- "“;变量未引用正确的对象
- "日期“;AJAX请求返回的类型值未定义
- 得到"TypeError:无法读取属性'filename'未定义的“;调用“npm start
- Soundcloud api"未捕获的类型错误:无法读取属性'uri'“未定义”;
- "工具提示"jQuery插件坏了
- "锻造;React中的表达式
- 图像可以从源<img src=""/>.TEXT可以在没有javascript的情况下从外部
- 如何提取“;href"最近列表项中的属性值
- CKEditor如何允许href="javascript:void(0)"在小部件中
- 插入“;img src"在javascript中