以下是delphi的介面呼叫代碼:
const
YQSHDLL = 'PReadcardDll.dll';
type
TCardMessage = array[0..15] of byte; //16位元組ic快資料
pCardMessage = ^TCardMessage; // 指標
end
宣告動態庫函式
function ReadICCard(Sector:integer; CardM:pCardMessage;aCom : integer):integer; StdCall; external YQSHDLL ;
按鈕事件(根據密碼讀取某一扇區第0,1,2塊資料)
procedure TForm2.Button10Click(Sender: TObject);
var
i :Integer;
pb:TCardMessage ;
as_TempStr:string;
begin
if not SetReadPram(setor,0,PChar(password),Comport) then
begin
Application.MessageBox('密碼錯','提示',MB_OK);
Exit;
end;
ReadICCard(0,@pb,Comport);
as_TempStr:='';
for i := 0 to 15 do
as_TempStr :=as_TempStr+ IntToHex(pb[i],2);
Edit24.Text:=as_TempStr;
ReadICCard(1,@pb,Comport);
as_TempStr:='';
for i := 0 to 15 do
as_TempStr :=as_TempStr+ IntToHex(pb[i],2);
Edit19.Text:=as_TempStr;
ReadICCard(2,@pb,Comport);
as_TempStr:='';
for i := 0 to 15 do
as_TempStr :=as_TempStr+ IntToHex(pb[i],2);
Edit20.Text:=as_TempStr;
end;
請教下高手,這段程式代碼在PB里如何實作及呼叫的,同事說直接用PB不好做,要用delphi改下動態庫函式匯出一個新的DLL檔案再來用PB實作(實作上是把delphi原來的函式再封裝一下,修改一下回傳值的型別而已)。多謝!
uj5u.com熱心網友回復:
哎,這個帖子很久了。不懂,幫頂。uj5u.com熱心網友回復:
能用DELPHI呼叫的 基本可以用PB呼叫!uj5u.com熱心網友回復:
Public Function int ReadICCard(int Sector,ref char CardM[],int aCom ) LIBRARY "PReadcardDll.dll"呼叫時,先:
for i=1 to 16
CardM[i]=char(0)
next
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/49728.html
標籤:API 調用
上一篇:PB 下DATAwindown
