win7打开我的电脑出现debug assertion failed 10

win7系统,最近打开我的电脑出现了如图所示的问题,然后资源管理器就频繁重启,怎么办呢,最好不重装系统... win7系统,最近打开我的电脑出现了如图所示的问题,然后资源管理器就频繁重启,怎么办呢,最好不重装系统 展开
 我来答
靓番茄
2011-04-29 · TA获得超过2707个赞
知道小有建树答主
回答量:665
采纳率:100%
帮助的人:658万
展开全部
把联想自带的电源管理软件卸了就是,我现在就没用,win7里边都集成了。音量键静音键都管用(虽然调节时屏幕不会显示格),只剩下那个自定义的快捷键,我平时也用不到。而且win7里自带了节能、平衡、高性能三种电源管理方式,你完全可以卸掉联想的驱动。
huiyujq
2011-04-28 · TA获得超过3084个赞
知道小有建树答主
回答量:884
采纳率:100%
帮助的人:909万
展开全部
出现“Debug Assertion Failed错误”是因为你程序中的断言失败了,也就是这一句话:
ASSERT(pActivateView == this);
Assert是System.Diagnostics.Debug类的一个静态方法,只在debug的状态下起作用,如果程序是编译成release的,那么该代码会被忽略。
Assert放的作用是检查输入条件(也就是该方法的参数)是否是“True"如果是什么都不会发生,如果是“False”则会抛出异常。
跟据你给的代码来看,应该你传入的参数pActivateView 与调用Assert的方法所在的类的实例(用this表示)不是同一个引用(也就是不是指向同一个实例)。你可以再检查一下你的代码可以跟踪到 mfc提供的源代码内部,(注:如果打开了mfc源代码,设置了断点,但是跟不进去,那就需要更新PDB文件,具体网上搜)
打开 wincore.cpp文件(D:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\atlmfc\src\mfc)。查看 312 行,所在函数如下:
CWnd* PASCAL CWnd::FromHandle(HWND hWnd)
{
CHandleMap* pMap = afxMapHWND(TRUE); //create map if not exist
ASSERT(pMap != NULL);
CWnd* pWnd = (CWnd*)pMap->FromHandle(hWnd);
#ifndef _AFX_NO_OCC_SUPPORT
pWnd->AttachControlSite(pMap);
#endif
ASSERT(pWnd == NULL || pWnd->m_hWnd == hWnd);
return pWnd;
}
断言就是 Assert( pWnd == NULL || pWnd->m_hwnd == hWnd );也就是读取句柄映射表错误,有2种可能:
1你传入的窗口句柄为空,也就是生成了窗口对象但是没有使用 Create创建窗口。
2.窗口所在线程不是当前所在线程,那么使用FromHandle读取映射窗口指针或者映射临时窗口指针必然会出错。窗口都是线程相关的噢
你点击菜单命令出错,你就有可能你的菜单命令执行的代码有 FromHandle语句,你看看,一定就是它
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式