我要调用VC++写的一个DLL的函数,对应的Delphi应该怎样写
DWORD PASCAL ReadCard(HANDLE hCom,BYTE DevNo,BYTE Addr,LPSTR pInfo,LPDWORD pCardSN),最好我要取得pInfo和pCardSN的返回值,各位高手帮帮忙啊
DWORD PASCAL ReadCard(HANDLE hCom,BYTE DevNo,BYTE Addr,LPSTR pInfo,LPDWORD pCardSN),最好我要取得pInfo和pCardSN的返回值,各位高手帮帮忙啊
// DWORD PASCAL ReadCard(HANDLE hCom,BYTE DevNo,BYTE Addr,LPSTR pInfo,LPDWORD pCardSN);
type
TReadCard=function(hCom:THandle;DevNo,Addr:Byte;pInfo:PChar;pCardSN:PLongWord):LongWord; stdcall;var
LibHandle:THandle;
FunReadCard:TReadCard;
lResult:LongWord;
Info:string;
CardSN:LongWord;
begin
LibHandle:=LoadLibrary('Dll文件完整名');
if LibHandle<>0 then
begin
FunReadCard:=TReadCard(GetProcAddress(LibHandle,'ReadCard'));
if Assigned(FunReadCard) then
lResult:=FunReadCard(0,0,0,PChar(Info),@CardSN);
//Process the Result and Paraments
FreeLibrary(LibHandle);
end;
end;
Public Declare Function ReadCard Lib "JSComm" (ByVal hdc As Long,ByVal DevNo As Long,ByVal Addr As Long,ByVal Info As String,ByRef CardSN As Long) As Long
测试有可以,为什么Delphi不得呢