如何在一个非窗口中新建MSComm对象

tower_xing 2007-03-15 11:13:09
请教!我想在一个非窗口的unit中用new动态生成一个MSComm对象,然后引用其各个事件。但是MSComm对象必须要有一个载体(this or other),另外如何为这个新对象附加MSComm事件呢?如果不行, 可能我就得用windows api了,但是除了用timer以外,我不知道如何监控端口。也就是MSComm的OnComm事件。 谢谢!
...全文
269 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
tower_xing 2007-03-17
  • 打赏
  • 举报
回复
songhtao(三十年孤独),怎么写MSComm事件用回调函数呢?我没有这方面的概念。你能够给出一点代码吗?谢谢!
tower_xing 2007-03-17
  • 打赏
  • 举报
回复
pizzame(芯火),谢谢!我的确正在做多串口通讯。如果你能有源码实例,那是再感谢不过的了。我正在头疼,没有思路呢。tower.xing@gmail.com
我不懂电脑 2007-03-15
  • 打赏
  • 举报
回复
看看Form中的代码包含对应的.h文件就可以new了,载体(this or other)用null就可以了。
附加MSComm事件用回调函数。
kysoft 2007-03-15
  • 打赏
  • 举报
回复
up
Friecin 2007-03-15
  • 打赏
  • 举报
回复
#pragma link "MSCommLib_OCX"

void __fastcall TAMPrintPage::FPrintToCOM( AnsiString PrintText )
{
TMSComm *MSComm = new TMSComm( Application );

if( MSComm->PortOpen == false )
MSComm->PortOpen = true;

MSComm->Output = StringToOleStr( AnsiString(char(28)) + AnsiString(char(38)) ); //输出中文
MSComm->Output = StringToOleStr( PrintText );

MSComm->Output = StringToOleStr( AnsiString(char(10) ));
MSComm->Output = StringToOleStr( AnsiString(char(10) ));
MSComm->Output = StringToOleStr( AnsiString(char(10) ));
MSComm->Output = StringToOleStr( AnsiString(char(10) ));
MSComm->Output = StringToOleStr( AnsiString(char(10) ));
MSComm->Output = StringToOleStr( AnsiString(char(10) ));
MSComm->Output = StringToOleStr( AnsiString(char(10) ));
MSComm->Output = StringToOleStr( AnsiString(char(10) ));
MSComm->Output = StringToOleStr( AnsiString(char(27)) + AnsiString(char(109)) );

}

我正在用的一个CPP单元类中的一个方法。木问题的~
睿音 2007-03-15
  • 打赏
  • 举报
回复
lz想的是多线程多串口发送接收吗?若是给你原码
constantine 2007-03-15
  • 打赏
  • 举报
回复
写好事件,然后将事件的函数指针赋值给控件的对应事件就行了,跟你写其他控件一样的。
timer不用就用线程,不过不知道你要监控端口做什么?

1,317

社区成员

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

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