2014-04-29 71 views
0

我剛開始研究Cdialog類。當我嘗試執行下面的代碼時,我得到調試斷言失敗。在domodal期間調試斷言失敗

#include "stdafx.h" 
#include "resource.h" 
#include <afxwin.h> 
#include "dialog.h" 
#include <Windows.h> 


int _tmain(int argc, _TCHAR* argv[]) 
{ 
    dialog dial(NULL); 
    dial.DoModal(); 
    return 0; 
} 

我創建了一個名爲dialog的對話資源和CdialogEx類。我得到的錯誤是 「調試斷言失敗

計劃:... pp_projects \ ConsoleApplication1 \調試\ ConsoleApplication1.exe中 文件:F:\ DD \ vctools \ vc7libs \船舶\ atlmfc \包括\ afxwin1。 inl Line:24「 任何人都可以給我一個解決方案嗎?

+0

爲什麼你試圖實現一個模式的UI,只在'NULL'作爲所有者窗口通過。你期望'DoModal'的召喚有什麼效果? – IInspectable

+0

@IInspectable在MSDN頁面中提到應該傳遞NULL來將對話框對象的父窗口設置爲主應用程序窗口。所以我保持那樣。但我真的不能明白他們的意思。 – Kumar

+0

你在說什麼*主要應用程序窗口?你沒有。並請提供您的'對話框'實現。 – IInspectable

回答

4

您的項目名稱所暗示的,你已經創建了一個Win32控制檯應用程序項目,並添加了MFC的東西。你需要創建一個MFC應用程序項目。

MFC也可以在控制檯應用程序中使用,但那麼你就不會顯示對話框,你需要先初始化MFC。

+1

是的,我忘了初始化MFC。我需要在我的代碼中包含AfxWinInit。謝謝。 – Kumar