达人,能否用C++Builder 转神思识别器Delphi代码

qq_17341897 qq_17341897 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
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;
...全文
评论 3
收藏 已收藏
分享
返回顶部