簡體   English   中英

MFC CDialog :: Create失敗

[英]MFC CDialog::Create fails

我在使用一些代碼創建基於CDialog的窗口時遇到問題。 該代碼上周運行良好。 我所做的唯一更改是用哈希數組替換了C ++雙端隊列。 我已經注釋掉了代碼行,並調用了Create方法,以允許我跳過窗口的加載。 現在,代碼根本不再創建窗口。

Create函數將返回false,而GetLastError函數將返回0。我不在窗口內使用任何自定義控件-只是一個復選框和一個列表控件。 據我所知(此時我無法連接調試器)根本沒有調用OnCreate和OnInitDialog函數。

我粘貼了以下代碼,這些代碼一直用於測試Create函數的return和GetLastError

BOOL result = ORDER_HANDLER_GUI.Create(OrderHandlerGUI::IDD, AfxGetMainWnd());
int error = ::GetLastError();

if(result)
    AfxMessageBox("Created GUI");
else
{
    CString msg;
    msg.Format("%d", error);
    AfxMessageBox("Could not create GUI");
    AfxMessageBox(msg);
}

更新:我終於設法連接了調試器(這是在第三方應用程序中加載的插件,由於某種原因,該插件不喜歡調試器)。 逐步執行代碼后,似乎AfxGetMainWnd()返回NULL。 我現在正在對此進行更多測試。

問題似乎出在對CDynLinkLibrary()的調用上。

我已根據編寫加載插件的軟件的公司的要求對此進行了注釋。 重新添加此行會導致某些值仍然為null,但現在已正確創建了窗口。

我將對此進行一些研究,如果有發現,將會進行更新。 如果有人比我了解更多(不難做到),請隨時發表評論。

對話框是否使用了可能導致問題的任何控件? 例如Richedit?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM