调试断言在MFC在VS2012
Debug assertion in MFC in VS2012
我正在将一个旧的GUI应用程序迁移到VS2012。在调试模式下运行此应用程序时,当我尝试使用以下代码行实例化工具栏时,会得到一个调试断言:
if(!m_wndMain.Create(this) || !m_wndMain.LoadToolBar(IDR_MAIN))
在MFC代码中挖掘之后,我发现bartool.cpp在MSVC10->11中从
更改了以下行:if (lpBitmap == NULL)
:
if ((lpBitmap == NULL) || (lpBitmap->biBitCount > 8))
在AfxLoadSysColorBitmap 。在我的情况下,lpBitmap->biBitCount
= 24导致AfxLoadSysColorBitmap
返回NULL
,这反过来导致调试断言。关于如何纠正我的程序的行为,以避免这个调试断言的任何想法?
除了将位图更改为8位(256色)之外,您最好的选择是使用CMFCToolBar代替。支持更高位深度的位图(包括24位和32位)。
load请检查您正在使用的位图图像确实只有8位。我想你用的是24位图像。因此出现了错误。
尝试将它们转换成8位,位图
相关文章:
- C++ MFC Libraries in Travis CI
- 从 bmp 文件数据创建 MFC CBitmap
- 如何在 MFC 中显示文件的所有行
- 目录删除 MFC 的问题
- MFC:如何设置CEdit框的焦点?
- MFC 中的抗锯齿
- 双击更改 mfc 中列表控件中的行的颜色
- C++MFC编辑框处理双击
- C++ MFC CObject 派生类摘要?
- 如何在 MFC 对话框中使用 OnDraw
- 在 1 个服务器 n 客户端套接字 C++ MFC 应用程序中更新数据的客户端
- MFC:你能在CDateTimeCtrl中改变自旋的加速度吗?
- MFC:我们如何轻松地从CTreeCtrl切换到CTreeView?
- __int64 CString 返回错误的值 - C++ MFC
- 如何在MFC中的静态文本控件上插入图标?
- 使用 MFC 的表/网格
- 获取线路错误 MFC vs2012 (msvcp110.dll)
- 在VS2012单元测试中创建和测试自定义MFC CEdit时,在第21行的afxwin1.inl中断言
- 用vs2012在windows xp上编译MFC程序
- 调试断言在MFC在VS2012