C的API调用问题,编译通过,没有预期结果(100分)

T

tgzhong

Unregistered / Unconfirmed
GUEST, unregistred user!
函数原形
C format
int32 piar_compvaluesfil(
int32 pt,
int32 PIPTR * count,
int32 times[],
float rvals[],
int32 istats[],
char PIPTR * expression,
int32 rev,
int32 filt );

定义接口单元
//interface unit
function piar_compvaluesfil( pt:int32;var count:int32;times:TDynamicInt32Array;
rvals:TDynamicSingleArray; istats:TDynamicInt32Array; var expression:pchar;rev:int32;filt:int32):int32;stdcall;external 'piapi32.dll';
//
调用
var
expstr:pChar;
ret,scount,rev:int32;
times,istats:TDynamicInt32Array;
rvals:TDynamicSingleArray;
startdate,enddate:TdateTime;
begin
setLength(times,2000);
setLength(istats,2000);
setLength(rvals,2000);
scount :=2000;
times[0] :=DateTimeToUnix(startdate);
times[scount-1] :=DateTimeToUnix(enddate);
GetMem(expstr,252);
expstr :='('+ '''DCS01GEN900'''+'> 300'+')';
piar_compvaluesfil(12345,scount,times,rvals,istats,expstr ,1,1);

编译运行通过,但返回值没有,显示的好像是表达式expression不正确。
 
type
PInt32 = ^Int32;
PFloat = ^Float;

function piar_compvaluesfil(
pt: Int32;
var count: Int32;
times: PInt32;
rvals: PFloat;
istats: PInt32;
expression: PChar;
rev: Int32;
filt: Int32 ): Int32; stdcall;external 'piapi32.dll';

调用时别忘了给这些指针申请空间
 
谢谢tseug,可以了
 
顶部