问题描述
我尝试根据stackoverflow和node-ffi documentation上的示例加载本地.dll。 但是我收到错误消息:没有这样的文件或目录,请打开“ ../test/user32.dll.so”。该文件在那里(没有例外)。 扩展名“ .so”会自动添加。知道我在做什么错吗?此代码平台依赖吗?我在使用Debian。
const path = require('path');
const fs = require('fs');
const ffi = require('ffi');
function setCursor() {
const dllFile = path.join('../test','user32.dll');
if (!fs.existsSync(dllFile)) {
throw (new Error('dll does not exist'));
}
const user32 = ffi.Library(dllFile,{
"SetCursorPos": [
"bool",["int32","int32"]
]
});
console.log(user32.SetCursorPos(0,0));
}
setCursor();
解决方法
看起来 path 无法将 ../test
识别为父文件夹。我认为 path.join(__dirname,'..','test','user32.dll');
应该会带您到正确的地方。