现在有一个动态库的函数是:int GetUserRight(int Address,BYTE *pCheckCardID,BYTE *pReturnCardID,BYTE *pPassword,Word *pSegmentID,Word *pAPB);
在delphi中用到这个函数:RTN:=GetUserRigh(1,CardNO,pReturnCardID,pPassword,SegmentID,APB);
CardNO是一个编辑框中的值,是string类型的,所以编译的时候它会报错:[Error] RegCard.pas(99): Incompatible types: 'String' and 'PAnsiChar',请问该怎样解决?还有就是pReturnCardID,pPassword,SegmentID,APB这些变量该怎样根据动态库的函数进行限定啊?谢谢!!!
在delphi中用到这个函数:RTN:=GetUserRigh(1,CardNO,pReturnCardID,pPassword,SegmentID,APB);
CardNO是一个编辑框中的值,是string类型的,所以编译的时候它会报错:[Error] RegCard.pas(99): Incompatible types: 'String' and 'PAnsiChar',请问该怎样解决?还有就是pReturnCardID,pPassword,SegmentID,APB这些变量该怎样根据动态库的函数进行限定啊?谢谢!!!
http://www.agui.googlepages.com
mailto: agui.cn(a)gmail.com
int GetUserRight(int Address,BYTE *pCheckCardID,BYTE *pReturnCardID,BYTE *pPassword,Word *pSegmentID,Word *pAPB);Delphi:
type
PByte=^byte;
PWord=^Word;function GetUserRight(Address:integer;pCheckCardID:PByte;pReturnCardID:pByte;pPassword:pByte;pSegmentID:PWord,pAPB:PWord):integer;
var
Address:integer;
pCheckCardID:PByte;
pReturnCardID:pByte;
pPassword:pByte;
pSegmentID:PWord;
pAPB:PWord;try
address=1;
new(pCheckCardID);//--分配指针内存
pCheckCardID^:=strtoint(edtCheckCardID.text);
new(pReturnCardID);
pReturnCardID^=0;
new(pPassword);
pPassword^=0;//or init.....
new(pSegmentID);
pSegmentID^:=0;
new(pAPB);
pAPB^:=0;
GetUserRight(Address,pCheckCardID,pReturnCardID,pPassword,pSegmentID,pAPB);
finally
dispose(pCheckCardID);//---收回指分配的内存
dispose(pReturnCardID);
dispose(pPassword);
dispose(pSegmentID);
dispose(pAPB);
end;当然,还有其他的实现方法。我就不写了。
http://www.agui.googlepages.com
mailto: agui.cn(a)gmail.com