达人,能否用C++Builder 转神思识别器Delphi代码
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;