用C++写的dll跟pos机通信,两个函数
function OpenComm(lpComPort: Integer; lpBaudRate: Integer; timeout: SmallInt): Integer; cdecl; external 'UnitPad_dll.dll';
function SendReq(nReqInfoLen: Longint; ReqInfo: TByteArr): Integer; cdecl; external 'UnitPad_dll.dll'; OpenComm函数是打开com口,SendReq是发送命令;TByteArr 是byte类型的数组begin
i := OpenComm(com, 57200, 360);
if i = 1 then
ShowMessage('连接成功');
ss := '00'; //收款
sb := GetBytes(ss);
r := SendReq(Length(sb), sb);
if r <> 1 then
ShowMessage('与pos机通信失败');
end;这样写可以成功。但是如果我把
if i = 1 then
ShowMessage('连接成功');
这句去掉。SendReq就返回错误了,不知道为啥
function OpenComm(lpComPort: Integer; lpBaudRate: Integer; timeout: SmallInt): Integer; cdecl; external 'UnitPad_dll.dll';
function SendReq(nReqInfoLen: Longint; ReqInfo: TByteArr): Integer; cdecl; external 'UnitPad_dll.dll'; OpenComm函数是打开com口,SendReq是发送命令;TByteArr 是byte类型的数组begin
i := OpenComm(com, 57200, 360);
if i = 1 then
ShowMessage('连接成功');
ss := '00'; //收款
sb := GetBytes(ss);
r := SendReq(Length(sb), sb);
if r <> 1 then
ShowMessage('与pos机通信失败');
end;这样写可以成功。但是如果我把
if i = 1 then
ShowMessage('连接成功');
这句去掉。SendReq就返回错误了,不知道为啥
ShowMessage('连接成功');
看看
sleep(1000);//可以加等待时间
if i = 1 then begin
ss := '00'; //收款
sb := GetBytes(ss);
r := SendReq(Length(sb), sb);
if r <> 1 then
ShowMessage('与pos机通信失败');
end;