gpt4 book ai didi

c++ - VS2012中MFC中的调试断言

转载 作者:太空狗 更新时间:2023-10-29 21:25:14 25 4
gpt4 key购买 nike

我正在将旧版 GUI 应用程序迁移到 VS2012。在 Debug模式下运行此应用程序时,当我尝试使用以下代码行实例化工具栏时收到调试断言:

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 位)位图。

关于c++ - VS2012中MFC中的调试断言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14327561/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com