现在有一个DLL中的函数是:int ReadRecord1(int Address,Word RecNumber,Word *pEventNO, BYTE *pCardID,SYSTEMTIME &EventTime);我现在在Delphi中定义了这个函数:function ReadRecord1(Address: integer; RecNumber:Word;pEventNO:pWord; pCardID:pchar ;EventTime:SYSTEMTIME):integer;stdcall;external 'CVIOAccessAPI.dll';
但是在编译的时候会报错:[Error] UIOAccess.pas(134): Undeclared identifier: 'SYSTEMTIME',请问这是怎么回事啊,该如何解决?SYSTEMTIME 的结构是这样的:
typedef struct _SYSTEMTIME {
WORD wYear;
WORD wMonth;
WORD wDayOfWeek;
WORD wDay;
WORD wHour;
WORD wMinute;
WORD wSecond;
WORD wMilliseconds;
} SYSTEMTIME;
但是在编译的时候会报错:[Error] UIOAccess.pas(134): Undeclared identifier: 'SYSTEMTIME',请问这是怎么回事啊,该如何解决?SYSTEMTIME 的结构是这样的:
typedef struct _SYSTEMTIME {
WORD wYear;
WORD wMonth;
WORD wDayOfWeek;
WORD wDay;
WORD wHour;
WORD wMinute;
WORD wSecond;
WORD wMilliseconds;
} SYSTEMTIME;
type
PSYSTEMTIME =^TSYSTEMTIME ;
TSYSTEMTIME =record
wYear :word;
wMonth:word;
wDayOfWeek:word;
wDay:word;
wHour:word;
wMinute:word;
wSecond:word;
wMilliseconds:word;
end;
然后把上面的这结构定义,放在下面函数声明的前边function ReadRecord1(Address: integer; RecNumber:Word;pEventNO:pWord; pCardID:pchar ;EventTime:SYSTEMTIME):integer;stdcall;external 'CVIOAccessAPI.dll';
有个地方需要注意的是,你delphi中,声明为stdcall,而vc中没有声明为WINAPI,这样是会有错的.这是常见的问题.