只是为了测试目的,我在 delphi 中创建了一个小的 DLL。代码为:
library MyDll;
uses
SysUtils,
Classes,
Vcl.Dialogs;
function DllMessage(const echo: string): string; export;
begin
//ShowMessage('Hello world from a Delphi DLL') ;
Result := 'Echo: ' + echo;
end;
exports DllMessage;
begin
end
我只想用这个 nodejs 代码运行这么简单的东西:
var ffi = require('ffi');
console.log("1");
var mylib = ffi.Library('MyDll', {'DllMessage': [ 'string', [ 'string' ] ] });
console.log(2");
var outstring = mylib.DllMessage('abc');
console.log("3" + outstring);
问题是我在控制台上只看到“1”和“2”,没有别的。 请帮忙,有什么想法吗?
提前致谢
最佳答案
将字符串数据作为缓冲区传递
var message = Buffer.from('abc')
var outstring = mylib.DllMessage(message);
console.log("3" + outstring);
关于node-ffi - 无法使 node-ffi 模块工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44520948/