用MFC做了个ocx,该ocx的一个方法启动一个界面线程,单击界面Fire了一个事件。
问题:该ocx在delphi,网页上调用正常,在VB开发环境下调用运行也正常,但用vb将包含该ocx的工程生成一个exe后,单独运行时,触发ocx的事件时内存不能为"read"之类的错误。请问运行vb生成的exe和在vb开发环境下的运行有什么区别?生成的exe要单独运行是不是还要带系列dll之类的库?为什么ocx在开发环境下运行正常而在生成的exe中单独运行时会出错?

解决方案 »

  1.   

    http://www.codeguru.com/cpp/com-tech/atl/atl/article.php/c75/
    ATL: Firing Events from Worker Threads
      

  2.   

    谢谢masterz(www.fruitfruit.com),由于我用MFC写的ocx,现在用了一个简单办法解决了,就是用个隐藏窗口,往该窗口发消息,消息函数里Fire事件,就不出现这个问题了,你推荐的方法我将试着用ATL重写,这样也许控件会小些。分全给你了!谢谢高手