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

qq_17341897 2016-09-27 09:56:52
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;
...全文
1473 3 打赏 收藏 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
xjq2003 2016-10-03
  • 打赏
  • 举报
回复
var cmd: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
xjq2003 2016-10-03
  • 打赏
  • 举报
回复
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 ,声明函数的,
xjq2003 2016-10-03
  • 打赏
  • 举报
回复
学习一点pascal语法,自己转c++代码就行了,很简单的啊
内容概要:WiFiSupply斯普莱WFS7000BI是一款高性能、电信工业级的室外型大功率无线基站,支持5.8GHz全频段(4920-6100MHz),基于MIMO 2T2R架构,最大发射功率达30dBm/1000mw,无线带宽最高300Mbps,点对点实际吞吐量超过150Mbps,支持TDMA时分多址技术,通信延迟≤1ms,具备强抗干扰能力和超远传输距离(桥接可达150公里以上)。设备集成16dBi双极化扇区天线,支持快速无缝漫游、多SSID、VLAN、QoS、VPN、防火墙、巨量安全隧道等多种网络功能,采用IP68防护等级和宽温设计(-45~85℃),具备防浪涌、防静电、电磁屏蔽等工业级防护特性,适用于复杂环境下的无线桥接与覆盖。支持胖瘦AP模式、本地及云端管理,并提供API接口实现第三方平台集成。; 适合人群:从事工业无线网络建设、系统集成、智能交通、智慧物流等领域的网络工程师、技术负责人及项目实施人员。; 使用场景及目标:适用于智慧交通、工业4.0、AMR/AGV小车组网、无人机遥控、车载船载视频传输、驾驶员考试系统、森林防火监控等对稳定性、低延迟、远距离通信要求高的室内外无线通信场景,目标是构建高可靠、高安全、长距离的无线网络传输系统。; 阅读建议:本文档技术参数详实,建议结合具体项目需求重点查阅频段、功率、组网模式、防护等级及管理方式等内容,便于选型与部署。
内容概要:WiFiSupply斯普莱WFS7000-52AX5是一款高性能、高负载型工业级双射频无线AP基站,支持2.4G和5.8G双频段WiFi6(802.11ax)标准,采用OFDMA、MIMO 4T4R架构及射频合路技术,实现最大1974Mbps的双频合并带宽。设备具备29dBm高发射功率、-96dBm高接收灵敏度,支持Fast Roaming快速漫游(切换延迟≤30ms)、多链路聚合、主备链路备份、巨量安全隧道等核心技术,保障低延迟、零丢包的稳定通信。配备5个千兆网口(含1个2.5G口)、支持POE/DC/端子多种供电方式,具备IP54防护、-45~85℃宽温运行、防浪涌防静电等工业级设计,适用于复杂恶劣环境。支持胖瘦一体模式、云端/本地/图形化多方式管理,并提供API接口便于第三方平台集成。; 适合人群:工业自动化、智能制造、智慧物流等领域中从事无线网络部署与运维的工程师和技术人员,具备基本网络知识和工业通信需求的专业用户。; 使用场景及目标:①用于AMR/AGV/RGV小车、无人叉车、穿梭车、天车、堆垛机等移动设备的无线联网;②满足无人机遥控、车载、船载、火车视频传输、分拣机PLC控制等高移动性、高可靠性场景的无线桥接与覆盖需求;③实现工业4.0环境下大规模终端接入、无缝漫游、安全传输的无线网络建设。; 阅读建议:本文档技术参数详尽,建议结合实际部署场景重点关注设备的射频性能、漫游切换、供电安装方式及管理功能,以便充分发挥其在高负载、强干扰工业环境下的优势。

1,317

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧