nodejsとCライブラリ(いくつかのdllメソッドの呼び出し)の問題を解決するのを手伝ってくれる人はいますか?
私のdllにはこれらのメソッドがあります:
void Open(char *Path);
int Execute(TINData *InData,TOUData *OutData);
void Close(void);
これらのデータ構造で:
typedef struct {
char Value[8+1];
char Type [1+1];
int Id;
unsigned char Parity;
} TINData
typedef struct {
char Cash[8+1];
char Telephone[11+1];
char CallType[3+1];
char CallResult[2+1];
char Description[24+1];
} TOUTData
私のnodejsコード:
var ffi = require('ffi');
var ref = require('ref');
var StructType = require('ref-struct');
var TINData = StructType({
'Value': 'string',
'Type': 'string',
'Id': 'int',
'Parity': 'string'
});
var TOUTData = StructType({
'Cash': 'string',
'Telephone': 'string',
'CallType': 'string',
'CallResult': 'string',
'Description': 'string'
});
var mylibrary = ffi.Library('OurLib.dll', {
'Open' : ['void', ['string']],
'Execute' : ['void', [TINData, TOUTData]],
'Close' : ['void', ['void']]
});
myLibrary.Open('myConnection');
var myTINData = new TINData();
myTINData.Value = '00000010';
myTINData.Type = '1';
myTINData.Id = 123;
myTINData.Parity = '0';
var myTOUTData = new TOUTData();
var i = mylibrary.Execute(myTINData, myTOUTData);
myLibrary.Close();
私の dll は、受信したすべてのデータをデバッグ ファイルに書き込みます。入力オブジェクトで渡されたデータ値が間違った位置に挿入され、出力オブジェクトの値を読み取ることができません。
どこが間違っているのですか?