I have a legacy Delphi dll which requires a json string as input (pAnsiChar) and returns an int as success or failure. I have managed to connect to the dll from nodejs using node-ffi. However, i am getting return int value points to invalid json string.
Could someone point me in the direction as to how to call a Delphi dll with pAnsiChar as function arguments from node
Thanks
PAnsiChar
in Delphi is a char*
in C/C++. In the FFI declaration for the DLL function, simply declare the PAnsiChar
parameter as a "string"
, which is a null-terminated char* in FFI.
For example, given this Delphi function:
function ProcessJson(Json: PAnsiChar): Integer; stdcall;
The node.js code would look something like this:
var ffi = require('ffi');
var mydll = ffi.Library('mydll', {
'ProcessJson': [ 'int', [ 'string' ] ]
});
var ret = mydll.ProcessJson("json content here");