我正在将旧版 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
,这反过来又导致调试断言。关于如何纠正我的程序行为以避免此调试断言的任何想法?