首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

工作线程中调用GetActiveDocument()出错,该如何处理

2012-03-17 
工作线程中调用GetActiveDocument()出错在文档类中新起了一个工作线程用来侦听网络上的消息。当接收到消息

工作线程中调用GetActiveDocument()出错
在文档类中新起了一个工作线程用来侦听网络上的消息。当接收到消息时,需要执行如下代码

C/C++ code
CProxyApp *pApp = (CProxy *)AfxGetApp();CMainFrame *pMainFrame = (CMainFrame *)pApp->m_pMainWnd;CProxyDoc *pDoc = (CProxyDoc *)pMainFrame->GetActiveDocument();

进而通过 pDoc 调用文档类中的函数。
但现在执行到 GetActiveDocument() 时就出现了断言错误。
调试发现,断言处的指针并不为 NULL;而且 pMainFrame.CFrameWnd.m_pViewActive.m_pDocument 中第一项的确是 [CProxyDoc]。
为什么会处错误呢?请求指教!!!


[解决办法]
你上面的代码是在线程函数中写的吧,应该是上面的函数返回的指针无效了。

[解决办法]
MFC的一些全局函数和线程状态相关,最好别这么使用。需要调用的函数可以放到全局或通过别的方式传入线程。

热点排行