3

仅出于测试目的,我在 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”,没有别的。请帮忙,有什么想法吗?

提前致谢

4

1 回答 1

0

将您的字符串数据作为缓冲区传递

var message = Buffer.from('abc')
var outstring = mylib.DllMessage(message);
console.log("3" + outstring);
于 2020-04-17T10:56:36.797 回答