gpt4 book ai didi

node.js - 从 Node js调用带有pAnisChar的Delphi stdcall函数

转载 作者:搜寻专家 更新时间:2023-10-31 22:59:38 25 4
gpt4 key购买 nike

我有一个遗留的 Delphi dll,它需要一个 json 字符串作为输入 (pAnsiChar) 并返回一个 int 作为成功或失败。我已经设法使用 node-ffi 从 nodejs 连接到 dll。但是,我得到返回 int 值指向无效的 json 字符串。

有人能告诉我如何使用 pAnsiChar 作为函数参数从 Node 调用 Delphi dll 吗

谢谢

最佳答案

据我所知,Node FFI 目前不允许您控制调用约定。默认是cdecl。所以在 Delphi 方面它看起来像这样:

function MyFunction(str: PAnsiChar): Integer; cdecl;

在 node-ffi 方面,我认为它看起来像这样:

var ffi = require('ffi');
var mylib = ffi.Library('libname', {
'MyFunction': [ 'int', [ 'string' ] ]
});
var retval = mylib.MyFunction("some string");

如果您不能修改遗留 DLL,那么恐怕您可能需要将它包装在一个除了导出 cdecl 函数之外什么都不做的 DLL 中,然后将它们传递给遗留 DLL stdcall 函数。

关于node.js - 从 Node js调用带有pAnisChar的Delphi stdcall函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21357502/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com