偶想实现象WORD之类带界面的COM应用程序,有个主COM组件(偶是用CComObjectGlobal),现在可以通过CoCreateInstance创建该COM组件来启动应用程序,想在客户使用完释放接口指针来使得该应用程序退出,但老是出问题。
原因(带流程):
在客户释放接口指针——》CComObjectGlobal.Release——》_Module.Unlock——》AfxOleUnlockApp——》AfxOleOnReleaseAllObjects,此时通过AfxGetApp得到的CWinApp对象的m_pMainWnd指向的是无效窗口类,导致m_pMainWnd->DestroyWindow出现异常。
但是通过比较发现AfxGetApp得到的线程还是原来的主线程(m_nThreadID相同),它的m_pMainWnd虽然是无效类,但它拥有的m_hWnd也是原来的主窗口句柄。不知道如何解释和处理?还望哪位作过同样事情的高手指教。
原因(带流程):
在客户释放接口指针——》CComObjectGlobal.Release——》_Module.Unlock——》AfxOleUnlockApp——》AfxOleOnReleaseAllObjects,此时通过AfxGetApp得到的CWinApp对象的m_pMainWnd指向的是无效窗口类,导致m_pMainWnd->DestroyWindow出现异常。
但是通过比较发现AfxGetApp得到的线程还是原来的主线程(m_nThreadID相同),它的m_pMainWnd虽然是无效类,但它拥有的m_hWnd也是原来的主窗口句柄。不知道如何解释和处理?还望哪位作过同样事情的高手指教。
解决方案 »
- 请问一下谁能讲解一下shell32的几个函数
- 做了一个软件,有多个对话框,其中三个对话框中需要串口通讯。
- shell扩展编程,想对所有的文件类型添加一个右键菜单项,请问相应的rgs文件应该怎么写?
- 要实现多态,是不是必须定义一个指向顶层基类的指针才行呀?
- 请问VS2008下怎么看一个程序有用到什么.dll吗?还有怎么增加一个.dlll
- 急死小弟了,高分求助(100),希望大家能够帮忙啊!非常谢谢!
- 帮帮我吧 在vc下用opengl构造三维测量点的nurbs曲线曲面
- 请教一下处理X光拍摄的图象有什么特别的要求?
- 关于《ATL开发指南的问题》
- VC++串口WriteFile()的问题
- 希望寻求一伙朋友一起在群里或是QQ里讨论问题这样效果更好,答复更快.QQ12371601
- 用ITaskbarList接口显示或隐藏窗口在任务栏上的按钮
AfxGetApp前加上这句看看
AFX_MANAGE_STATE(AfxGetAppModuleState());