跟进去后发现在mfc中的下列函数中出现ASSERT
CFrameWnd* PASCAL CCmdTarget::GetRoutingFrame_()
{
CFrameWnd* pFrame = AfxGetThreadState()->m_pRoutingFrame;
if (pFrame != NULL)
ASSERT_VALID(pFrame);
return pFrame;
}
奇怪!怎么会出现这样的错误?
CFrameWnd* PASCAL CCmdTarget::GetRoutingFrame_()
{
CFrameWnd* pFrame = AfxGetThreadState()->m_pRoutingFrame;
if (pFrame != NULL)
ASSERT_VALID(pFrame);
return pFrame;
}
奇怪!怎么会出现这样的错误?
解决方案 »
- VS2008的源安装文件的位置怎么找?
- 公司需求类似qq的聊天软件,最好能和p2p相结合的软件源代码,价格面议
- 问个关于ListControl的简单问题
- 我們有可能在程式執行過程中知道某個物件是屬於哪一種類別嗎?這種在 C++ 中稱為執行時期型別資訊(Runtime Type Information,RTTI)的
- 请问放置控件时怎样设置控件上的字体?谢谢
- 请高手帮我看看事务处理对delete操作的锁定有没有效呀!谢谢!急死我了!
- 高分求教:利用excel 产生html格式的动态报表!!
- 请问,做语音识别采样率要多少才合适?
- 为什么POST得不到想要的结果呢?
- VC调用webservice超时问题
- 求计算不规则图形面积算法!请教高手!在线等待!!!
- 简单的事件同步,可就是不是我想的这样,可见线程同步是个大难题,大家分析一下
载入了链接库的.lib文件。
奇怪,安装了vc6的补丁5后,上面的函数变成了
CFrameWnd* PASCAL CCmdTarget::GetRoutingFrame_()
{
CFrameWnd* pFrame = AfxGetThreadState()->m_pRoutingFrame;
return pFrame;
}
这样就不会再出现ASSERT错误了,难道是VC的错误?
1.手工切换句柄
2.采用上述方法
这个函数我也加了。
不过,在DLL里插入对话框资源并在DLL中调用对话框应该是很常见的一种现象,怎么会出现ASSERT呢?
VC的补丁5在win98里还不能安装(我好象试过),只能在win2000里,
那么以前编这类程序的是怎么处理的?
谢谢!
for more ,see
http://codeguru.earthweb.com/dll/MFCdll.shtml
这确实是VC的一个Bug!“Microsoft has confirmed that this is a bug in the Microsoft products that are listed at the beginning of this article. This bug was corrected in Visual Studio 6.0 Service Pack 3”