我用ATL写了一个DLL COM组件, 在其中一个类的一个函数中开了一个线程, 想在适当的时候Fire 事件, 通知VB客户, 在VB 的IDE环境中没有问题, 但生成exe文件运行时就会出错, 显示我错误签名:AppName: 5DE57A0B0031002E006500780065  AppVer: 1.0.0.0  ModName: msvbvm60.dll
ModVer: 6.0.97.82  Offset: 000c9b0e, 到底什么原因?
在网上找了很久, 有的说是VB不支持多线程, 但在IDE中又可以, 真是晕菜.
期待高手指点迷津......

解决方案 »

  1.   

    VB6虚拟机不支持多线程,但是VB“缝合”起来的ActiveX是支持的,这也是VB6下多线程的唯一方式。你的方式并没有错,应该是具体的错误。
      

  2.   

    我当时也遇到过这个问题的。
    我的解决方案是:下载这个文件ATLCPImplMT.h,在根据原地址:
    http://support.microsoft.com/kb/q280512/#kb1
    希望可以解决,你的问题。
      

  3.   

    我曾经遇到过这个问题。当时的做法是在COM组件工程中创建一个窗口,在线程中向这个窗口发送消息,然后在窗口的消息处理函数中调用Fire_XXX函数。