G
guosoong
Unregistered / Unconfirmed
GUEST, unregistred user!
需求:建立一个动态链接库,该动态链接库可以进行串口通讯。
函数出口:GetCommBuff(Commname: pchar;
CommBps: longint;
SendCommand: Pchar;
var RecvBuff: Pchar): longint;
函数说明:
Commname := 'Com1';
CommBps := 57600;
SendCommand := '68AAAA680300000087';
RecvBuff是返回的数据
result是Recvbuff的长度
目前问题所在,也是我向大家求教的问题;
1.目前动态链接库里使用了SPcomm2.5版本
2.该动态链接库里有窗体,spcomm作为一个对象放在窗体中。
3.主程序执行流程
procedure TForm1.Button2Click(Sender: TObject);
var
tempchar: Pchar;
tempcount: integer;
begin
tempchar := '';
tempcount := GetCommBuff('com1',57600,'68AAAA680300000087',tempchar);
.........................
if tempcount > 0 then
showtheBuff(tempchar,tempcount );//这里是用来显示抄回来的数据,到界面的
end;
但是由于动态链接库里采用的是Spcomm,所以实际上程序流程如下
1.tempcount := GetCommBuff('com1',57600,'68AAAA680300000087',tempchar);
2.if tempcount > 0 then
showtheBuff(tempchar,tempcount );//这里是用来显示抄回来的数据,到界面的
3.动态链接库中的
Spcomm1.WriteCommData(@sendbuff[0],sendsize);
才开始执行,这个时候tempcount = 0 .
我的问题就是,如何让动态链接库里的Spcomm发送完,也接收好数据并且传递出来参数,或者错误了。主程序里的showtheBuff(tempchar,tempcount );才继续进行。
函数出口:GetCommBuff(Commname: pchar;
CommBps: longint;
SendCommand: Pchar;
var RecvBuff: Pchar): longint;
函数说明:
Commname := 'Com1';
CommBps := 57600;
SendCommand := '68AAAA680300000087';
RecvBuff是返回的数据
result是Recvbuff的长度
目前问题所在,也是我向大家求教的问题;
1.目前动态链接库里使用了SPcomm2.5版本
2.该动态链接库里有窗体,spcomm作为一个对象放在窗体中。
3.主程序执行流程
procedure TForm1.Button2Click(Sender: TObject);
var
tempchar: Pchar;
tempcount: integer;
begin
tempchar := '';
tempcount := GetCommBuff('com1',57600,'68AAAA680300000087',tempchar);
.........................
if tempcount > 0 then
showtheBuff(tempchar,tempcount );//这里是用来显示抄回来的数据,到界面的
end;
但是由于动态链接库里采用的是Spcomm,所以实际上程序流程如下
1.tempcount := GetCommBuff('com1',57600,'68AAAA680300000087',tempchar);
2.if tempcount > 0 then
showtheBuff(tempchar,tempcount );//这里是用来显示抄回来的数据,到界面的
3.动态链接库中的
Spcomm1.WriteCommData(@sendbuff[0],sendsize);
才开始执行,这个时候tempcount = 0 .
我的问题就是,如何让动态链接库里的Spcomm发送完,也接收好数据并且传递出来参数,或者错误了。主程序里的showtheBuff(tempchar,tempcount );才继续进行。