Function UCommand1(pCmd:PByte; parg0,parg1,parg2:Pint):integer; stdcall;far; External 'RdCard.dll'; //
Function GetAddr (buf:pchar):integer; stdcall;far;External 'RdCard.dll';
Function GetBegin (buf:pchar):integer; stdcall;far;External 'RdCard.dll';
Function GetName (buf:pchar):integer; stdcall;far;External 'RdCard.dll';
Function GetSex (buf:pchar):integer; stdcall;far;External 'RdCard.dll';
Function GetFolk (buf:pchar):integer; stdcall;far;External 'RdCard.dll';
Function GetIDNum (buf:pchar):integer; stdcall;far;External 'RdCard.dll';
Function GetDep (buf:pchar):integer; stdcall;far;External 'RdCard.dll';
Function GetBirth (buf:pchar):integer; stdcall;far;External 'RdCard.dll';
Function GetEnd (buf:pchar):integer; stdcall;far;External 'RdCard.dll';
Function GetNewAddr(buf:pchar):integer; stdcall;far;External 'RdCard.dll';
//Function GetSexGB (buf:pchar):integer; stdcall;far;External 'RdCard.dll';
//Function GetFolkGB (buf:pchar):integer; stdcall;far;External 'RdCard.dll';
Function GetSAMIDToStr(buf:pchar):integer; stdcall;far;External 'RdCard.dll';
Function GetErrString(eNum:integer;buf:pchar):integer; stdcall;far;External 'RdCard.dll';
Function GetSamID(buf:pchar):integer; stdcall;far;External 'RdCard.dll';
{procedure TForm1.Timer1Timer(Sender: TObject);
var
info:array[0..255] of BYTE;
uniData:array[1..256] of BYTE;
ss,ss1:string;
hFile:THandle; //檔案句柄
nRead:DWORD; //讀取位元組數
i,j:integer;
rect:Trect;
cmd:BYTE;
para0,para1,para2:integer;
begin
if not bRun then
begin
//
Timer1.Enabled:=False;
Try
cmd:=$43;
para0:=1;
para1:=strtoint(Edit1.text);
para2:=strtoint(Edit2.text);
nRet:=UCommand1(@cmd,@para0,@para1,@para2);
if nRet=62171 then
begin
//清除資訊顯示
//驗證卡成功
//讀基本資訊
cmd:=$44;
para0:=1;
para1:=strtoint(Edit1.text);
//para2:=strtoint(Edit2.text);
ss:=ExtractFilePath(Application.ExeName)+'tt';
//para2=@ss;
nRet:=UCommand1(@cmd,@para0,@para1,Pint(ss));
if (nRet=62171) or (nRet=62172) then
begin
bRead := True;
if nRet=62172 then
begin
zhiwen.text := '有指紋資料: '+ss+'fp.bin';
end
else
begin
zhiwen.text := '無指紋資料';
end;
begin
//Showmessage('檔案讀入成功!');
//========================================
j:=0;
//Name
for i:=1 to 30 do
begin
uniData[i]:=info[j+i-1];
end;
esName.Caption:=trim(WideCharLenToString(PWideChar(@uniData),15));
//Sex
j:=30;
for i:=1 to 2 do
begin
uniData[i]:=info[j+i-1];
end;
esSex.Caption:=trim(WideCharLenToString(PWideChar(@uniData),1));
if esSex.Caption='1' then
esSex.Caption:='男'
else
esSex.Caption:='女';
//Folk
j:=32;
for i:=1 to 4 do
begin
uniData[i]:=info[j+i-1];
end;
esFolk.Caption:=trim(WideCharLenToString(PWideChar(@uniData),2));
esFolk.Caption:=FOLK[strtoint(esFolk.Caption)];
//BirthDay
j:=36;
for i:=1 to 16 do
begin
uniData[i]:=info[j+i-1];
end;
esBirth.Caption:=trim(WideCharLenToString(PWideChar(@uniData),8));
//Addr
j:=52;
for i:=1 to 70 do
begin
uniData[i]:=info[j+i-1];
end;
esAddr.Caption:=trim(WideCharLenToString(PWideChar(@uniData),35));
//ID
j:=122;
for i:=1 to 36 do
begin
uniData[i]:=info[j+i-1];
end;
esID.Caption:=trim(WideCharLenToString(PWideChar(@uniData),18));
//Issue
j:=158;
for i:=1 to 30 do
begin
uniData[i]:=info[j+i-1];
end;
esIssue.Caption:=trim(WideCharLenToString(PWideChar(@uniData),15));
//IssueBegin
j:=188;
for i:=1 to 16 do
begin
uniData[i]:=info[j+i-1];
end;
esBegin.Caption:=trim(WideCharLenToString(PWideChar(@uniData),8));
//IssueEnd
j:=204;
for i:=1 to 16 do
begin
uniData[i]:=info[j+i-1];
end;
esEnd.Caption:=trim(WideCharLenToString(PWideChar(@uniData),8));
{j:=220;
for i:=1 to 70 do
begin
uniData[i]:=info[j+i-1];
end;
}
Try
ss1:=ss+'zp.bmp';
Image1.Picture.Bitmap.LoadFromFile(ss1);
except
end;
//WinExec(
end;
procedure TForm1.BitBtn2Click(Sender: TObject);
var
cmd:BYTE;
para0,para1,para2:integer;
begin
if not Timer1.Enabled then
begin
cmd:=$41; //打開串口
para0:=0; //自動搜索埠
para1:=strtoint(Edit1.text);
para2:=strtoint(Edit2.text);
nRet:=UCommand1(@cmd,@para0,@para1,@para2);
//if (nRet=62171)OR(nRet=-5)OR(nRet=-7) then
if (nRet=62171) then
begin
Timer1.Enabled:=True;
end;
if not Timer1.Enabled then
esEnd.Caption:='Return:'+inttostr(nRet);
end
else
begin
Timer1.Enabled:=False;
cmd:=$42; //關閉埠
para0:=0; //自動搜索埠
para1:=strtoint(Edit1.text);
para2:=strtoint(Edit2.text);
nRet:=UCommand1(@cmd,@para0,@para1,@para2);
end;
if Timer1.Enabled then
begin
BitBtn2.Caption:='斷開連接';
end
else
begin
BitBtn2.Caption:='連 接';
end;
end;
uj5u.com熱心網友回復:

學習一點pascal語法,自己轉c++代碼就行了,很簡單的啊
uj5u.com熱心網友回復:
Function UCommand1(pCmd:PByte; parg0,parg1,parg2:Pint):integer; stdcall;far; External 'RdCard.dll'; //Function GetAddr (buf:pchar):integer; stdcall;far;External 'RdCard.dll';
Function GetBegin (buf:pchar):integer; stdcall;far;External 'RdCard.dll';
Function GetName (buf:pchar):integer; stdcall;far;External 'RdCard.dll';
Function GetSex (buf:pchar):integer; stdcall;far;External 'RdCard.dll';
Function GetFolk (buf:pchar):integer; stdcall;far;External 'RdCard.dll';
Function GetIDNum (buf:pchar):integer; stdcall;far;External 'RdCard.dll';
Function GetDep (buf:pchar):integer; stdcall;far;External 'RdCard.dll';
Function GetBirth (buf:pchar):integer; stdcall;far;External 'RdCard.dll';
Function GetEnd (buf:pchar):integer; stdcall;far;External 'RdCard.dll';
Function GetNewAddr(buf:pchar):integer; stdcall;far;External 'RdCard.dll';
//Function GetSexGB (buf:pchar):integer; stdcall;far;External 'RdCard.dll';
//Function GetFolkGB (buf:pchar):integer; stdcall;far;External 'RdCard.dll';
Function GetSAMIDToStr(buf:pchar):integer; stdcall;far;External 'RdCard.dll';
Function GetErrString(eNum:integer;buf:pchar):integer; stdcall;far;External 'RdCard.dll';
Function GetSamID(buf:pchar):integer; stdcall;far;External 'RdCard.dll';
這一段是呼叫dll ,宣告函式的,
uj5u.com熱心網友回復:
varcmd:BYTE;
para0,para1,para2:integer;
begin
if not Timer1.Enabled then
begin
翻譯如下:
byte cmd;
int para0,para1,para2;
{// begin
if(!Timer1.Enabled)
{// begin
}//end
}//end
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/71260.html
標籤:網絡及通訊開發
