首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

VS2012 MFC SDI 創建 CDialogBar 失敗:Debug Assertion Failed 排查

     編輯:程式設計綜合問答

在 CMainFrame::OnCreate 中創建 CDialogBar 時觸發 Debug Assertion,通常因資源 ID 未定義或創建參數錯誤。

檢查清單

  1. 資源編輯器中是否存在 IDD_FLOAT_DLG?打開 Resource.h 搜索,或資源視圖「Dialog」節點下確認。
  2. Dialog 模板屬性:Style = Child,Border = None,取消 Title Bar,否則無法作為工具欄嵌入。
  3. 創建調用順序:
    if (!m_myDlg.Create(this, IDD_FLOAT_DLG, 
        CBRS_TOP | CBRS_HIDE_INPLACE, IDD_FLOAT_DLG)) {
        TRACE0("Failed to create dialog bar");
        return -1;
    }
    m_myDlg.EnableDocking(CBRS_ALIGN_TOP);
    EnableDocking(CBRS_ALIGN_TOP);
    DockControlBar(&m_myDlg);
    
  4. Debug vs Release:斷言僅在 Debug 觸發,Release 可能靜默失敗,務必在 Debug 下修復。

常見錯誤碼

  • IDD_FLOAT_DLG 拼寫錯誤或未包含 resource.h。
  • Dialog 模板未勾選「Child」樣式導致 Create 內部 ASSERT 失敗。

修復資源後重新編譯即可通過。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved