首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

SPCOMM 编写的 DLL有关问题

2012-08-10 
SPCOMM 编写的 DLL问题我是这么做的,我先弄了个unit1.pas文件,专门用于打开、关闭、发送、接收串口的。然后在

SPCOMM 编写的 DLL问题
我是这么做的,我先弄了个unit1.pas文件,专门用于打开、关闭、发送、接收串口的。然后在 DLL 中 调用unit1.pas文件实现串口的 DLL,以便其他程序使用。
  在unit1.pas文件中这么定义Tcomm的。
uses
  SysUtils, Classes, Windows, Dialogs, SPCOMM;
  type
  TMyComm=class(TComm)
  public
  procedure MyReceiveData(Sender: TObject; Buffer: Pointer; BufferLength: Word);
  end;  
var
  mycomm:TMyComm;
  backmsg:string;

implementation
procedure TMyComm.MyReceiveData(Sender: TObject; Buffer: Pointer; BufferLength: Word);
var
  pStr:PChar;
begin
  pStr:= Buffer;
  backmsg:=string(pStr);
  showmessage(backmsg);
end;

initialization //初始化
  mycomm:=Tmycomm.Create(nil);
  mycomm.OnReceiveData:=mycomm.MyReceiveData;
finalization //释放
  mycomm.Free;

end;

  打开串口、发送数据搜是可以的,就是接收不是很正常。
  假设我每发一个字符串,就会返回一个‘OK’,比如我程序中就发一个‘AT’,能返回一个‘OK’,但是当我发了‘AT’连着发了‘B’,那么只会等‘B’也发完才返回两个‘OK’,断电调试的时候,只发完‘A’是没有数据返回的。请问这是怎么回事。

[解决办法]
但是当我发了‘AT’连着发了‘B’,那么只会等‘B’也发完才返回两个‘OK’:发完一个命令,加换行符。at+#13

具体请发个你的代码,一起给分析下。

[解决办法]
楼主,你这数据接收到后,如何通知调用你这DLL的主程序呢?我也有疑惑

热点排行