让人很蛋疼的BUG(R6034)
出错提示: windows 已在 test.exe 中触发一个断点。 其原因可能是堆被破坏,这也说明 test.exe 中或它所加载的任何DLL 中有 Bug。
输出窗口: test.exe 中的 0x7c92e470 处最可能的异常: 0xC0000005: 读取位置 0x00000130 时发生访问冲突 R6034 An application has made an attempt to load the C runtime library without using a manifest. This is an unsupported way to load Visual C++ DLLs. You need to modify your application to build with a manifest. For more information, see the “Visual C++ Libraries as Shared Side-by-Side Assemblies” topic in the product documentation. Windows 已在 test.exe 中触发一个断点。
其原因可能是堆被损坏,这也说明 test.exe 中或它所加载的任何 DLL 中有 bug。
view plaincopy to clipboardprint?
#if defined (_CRT_CHECK_MANIFEST)
if (!_check_manifest(hDllHandle))
{
__try
{
_NMSG_WRITE(_RT_CHECKMANIFEST);
}
__except( EXCEPTION_EXECUTE_HANDLER )
{
OutputDebugString(_GET_RTERRMSG(_RT_CHECKMANIFEST));
DebugBreak();
}
_ioterm(); /* shut down lowio */
_mtterm(); /* free TLS index, call _mtdeletelocks() */
_heap_term(); /* heap is now invalid! */
return FALSE;
}
#endif /* defined (_CRT_CHECK_MANIFEST) */
#if defined (_CRT_CHECK_MANIFEST)
if (!_check_manifest(hDllHandle))
{
__try
{
_NMSG_WRITE(_RT_CHECKMANIFEST);
}
__except( EXCEPTION_EXECUTE_HANDLER )
{
OutputDebugString(_GET_RTERRMSG(_RT_CHECKMANIFEST));
DebugBreak();
}
_ioterm(); /* shut down lowio */
_mtterm(); /* free TLS index, call _mtdeletelocks() */
_heap_term(); /* heap is now invalid! */
return FALSE;
}
#endif /* defined (_CRT_CHECK_MANIFEST) */
通过看提示,看崩溃点,好像是manifest的问题,修改项目属性-清单文件-生成清单(是) 重新编译OK。
DEBUG,模式下控制台关闭不了的问题。
shift+F5是停不掉的,连关机都终止不掉,只能强行断电 我今天又遇到这样的问题了,中文google上搜不到,在英文google上找到了可行解 http://social.msdn.microsoft.com/Forums/en/vsdebug/thread/e6d4a4f5-7002-401a-90e1-6174d7f9e3ca 这个和补丁KB978037有关,msdn社区上有类似的讨论,基本上最后的解决方案是卸载掉KB978037,或者卸掉2010年2月10日那天的所有补丁,类似问题的讨论及可行的解决方案参见
我卸载掉了KB978083,强制关机,重启,现在问题没有再出现了