读书人

请教DELPHI7 调用C++的接口这些参数

发布时间: 2014-01-09 23:07:34 作者: rapoo

请问DELPHI7 调用C++的接口,这些参数如何传?
C++的接口定义是:
FRI_SCZ_BEE_ML int decrypt_3Finger(unsigned char ulKeyID[3],
unsigned char *cElement1,
unsigned long ulLen1,
unsigned char *cCipher,
unsigned long ulCipherLen,
unsigned char *cPlain,
unsigned long *ulPlainLen)

D7中这样定义
function decrypt_3Finger(ulKeyID:PChar;cElement1:PChar;ulLen1:Integer;cCipher:array of Byte;ulCipherLen:Cardinal;
var cPlain:array of Char;
var ulPlainLen:LongInt):Integer;stdcall;external 'FRI_BEE_ML.dll';
但传参后总是不行,请问 C++的这些类型,对应D7应该是什么类型呢?
[解决办法]
unsigned char *cCipher, //这个没必要定义为数组,就PChar就可以了
unsigned long ulCipherLen,

[解决办法]
1.你贴的函数没有使用stdcall,你在Delphi下的却用了stdcall。
2.ulKeyID是一个3字节的数组,你在Delphi下却用了4字节的PChar

[解决办法]
function decrypt_3Finger(
ulKeyID: array[1..3] of byte;
cElement1:PChar;
ulLen1:Integer;
cCipher:PChar;
ulCipherLen:LongWord;
cPlain:PChar;
lPlainLen:^LongWord): Integer;stdcall;external 'FRI_BEE_ML.dll';

读书人网 >.NET

热点推荐