debugging - MFC 调试断言失败 (filecore.cpp LINE 302)
问题描述
我正在通过观看使用MFC的图像处理程序来一一学习。如果您加载存储在 PC 中的图像文件进行图像处理,则会出现如下所示的错误。原因远吗?
Visual Studio 中调试器生成的错误日志如下所示。
'Image_Tool.exe'(Win32): 'C:\Windows\SysWOW64\xmllite.dll' unloaded
0x161c thread is closed (code : 0 (0x0)).
'Image_Tool.exe'(Win32): 'C:\Windows\SysWOW64\WMASF.DLL' unloaded
'Image_Tool.exe'(Win32): 'C:\Windows\SysWOW64\mfperfhelper.dll' unloaded
'Image_Tool.exe'(Win32): 'C:\Windows\SysWOW64\WMVCORE.DLL' unloaded
'Image_Tool.exe'(Win32): 'C:\Windows\SysWOW64\audiodev.dll' unloaded
'Image_Tool.exe'(Win32): 'C:\Windows\SysWOW64\wpdshext.dll' unloaded
Debug Assertion Failed!
Program: C:\WINDOWS\SYSTEM32\mfc120ud.dll
File: f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\filecore.cpp
Line: 302
在 Visual Studio 中,我被告知程序结束的位置
void CImage_ToolDoc::OnReverseImg()
{
for (int i = 0; i < 256; i++)
{
for (int j = 0; j < 256; j++)
{
m_OutImg[i][j] = 255 - m_InImg[i][j];
}
UpdateAllViews(NULL);
}
}
void CImage_ToolDoc::TwoImgLoad()
{
CFile file;
CFileDialog opendlg1(TRUE, NULL, NULL, OFN_ALLOWMULTISELECT, NULL);
if (opendlg1.DoModal() == IDOK)
{
file.Open(opendlg1.GetFileName(), CFile::modeRead);
file.Read(m_InImg1, sizeof(m_InImg1));
file.Close();
}
CFileDialog opendlg2(TRUE, NULL, NULL, OFN_ALLOWMULTISELECT, NULL);
if (opendlg2.DoModal() == IDOK)
{
file.Open(opendlg2.GetFileName(), CFile::modeRead);
file.Read(m_InImg2, sizeof(m_InImg2));
file.Close();
}
}
调试断言对话框:
解决方案
推荐阅读
- vb.net - vb.net 复制结构不是地址
- javascript - 按数组键分组
- javascript - 这种相互递归逻辑是如何工作的?
- c++ - 成员变量指针的函数参数包
- gradle - 给定一个使用 gradlew 的 gradle 项目,我如何知道该项目使用的是哪个版本的 gradle?
- python - 熊猫数据框,通过跨度的交集合并?
- c# - 如何在 System.Net.Mail SMTP 中使用显式 SSL
- reactjs - SSR 具有动态元数据 + 预渲染的 App Shell
- command-line - 如何在 MSBuild 命令行中设置解决方案配置构建
- .net - 如何使用 Activator.CreateInstance 创建 F# 选项类型的实例?