请注意,这里是API社区!
问的就是用API编写的Comm控件里,如何实现OnComm事件
(用Timer控件的全部封杀!!!)觉得WaitCommEvent比较合适,但听说要用到多线程
那样的话,在IDE里就不能调试了吗?
不知能否有一些取巧的办法?
即不占用过多的系统资源,又能方便调试?能否用段具体的代码来说说?
我还不会WaitCommEvent的用法呢,惭愧。

解决方案 »

  1.   

    VB中使用MSCOMM控件,在其MsComm_OnComm写接收代码,不用TIMER控件:
    Private Sub MsComm_OnComm()
        Select Case Me.MSComm.CommEvent
            Case comEvReceive
            '写接收代码
        End Select
    End Sub
      

  2.   

    晕倒!◎#¥%……※×问的是用API编写的Comm控件里,如何实现OnComm事件这里是API社区!呵呵
      

  3.   

    要么在VB里开一个线程(不建议),要么用VC封装成DLL,由VB访问,用WaitCommEvent就可以判断出是否来数据,但是需要不断检测。总之,不需要时钟,那只能用线程了。
      

  4.   

    注:采用VC封装的DLL要用回调的方式传入VB的函数指针。
      

  5.   

    如果真能做到这些 .net版那个串口控件也不会长那样了
      

  6.   

    To yefanqiu(叶帆):俺不会C,能否请老大帮忙做下VC封装的DLL用回调的方式传入VB的函数指针?还有能否介绍一下,VB下的API WaitCommEvent怎么用啊?(俺E文很烂,呵呵:)
      

  7.   

    为什么不用Mscomm,为什么不用时钟,我做项目,这两者都用,没有什么不妥。如果要求高性能,最好全部用VC做。WaitCommEvent这个函数是个堵塞函数,负责监控你自己指定的信号(如数据接收,数据发送完毕等等事件)在线程中好使,我一般用WaitForSingleObject函数,这样超时一段时间即可返回。
      

  8.   

    不用控件是因为控件版本不容易掌握(5。0和6。0混用,要看现场实际情况),麻烦死了,
    由于软件本身没有安装程序(本来就是绿色软件嘛)偶知道Wait的作用(书上说的)但却没有实例,不知道到底是怎么用起来的能否给个具体代码,说明一下WaitCommEvent的使用?谢谢:)
      

  9.   

    感觉还是Timer容易些,
    请参考:可替代VB自带的Timer控件的Timer类  
    http://blog.csdn.net/modest/archive/2006/10/23/1346175.aspxWaitCommEvent在vb里面要用多线程,否则会把自己堵死。
      

  10.   

    To yefanqiu(叶帆):能否请老大帮忙做下VC封装的DLL用回调的方式传入VB的函数指针?
      

  11.   

    我看还是用汇编来写吧.....现在的WIN32汇编好象比较容易理解了.....基本上都是API来API去的....