文件開啟時,MFC內部的執行流程

2022-03-13 23:24:54 字數 1150 閱讀 5010

多文件框架中,"建立空文件失敗"的問題的分析!

這類問題的出現主要在

第一步:

onfilenew();

if (m_pmainwnd == null)

bresult = false;

break;

case ccommandlineinfo::fileopen:

if (!opendocumentfile(rcmdinfo.m_strfilename))

bresult = false;

break;

通過上面的內容我們可以看出:如果沒有對id_file_new做對映的話出現問題就在onfilenew();

第二步:

第三步:

void cdocmanager::onfilenew()

cdoctemplate* ptemplate = (cdoctemplate*)m_templatelist.gethead();

if (m_templatelist.getcount() > 1)

assert(ptemplate != null);

assert_kindof(cdoctemplate, ptemplate);

ptemplate->opendocumentfile(null);

和onfileopen。而在cdocmanager裡面。通過模板鍊錶選擇不同的模板來呼叫文件模板的opendocumentfile();  //最重要,應用程式不同呼叫的函式不同

如果傳入引數null表示新建檔案。

第四步:

下面我們來看看cdoctemplate::opendocumentfile()它是乙個最關鍵的函式。因為他是虛函式,我們考慮

cframewnd* cdoctemplate::createnewframe(cdocument* pdoc, cframewnd* pother)

通過觀察上面的**我們很容易的看出 有兩個可能出錯的原因:1、createobject返回值為空; 2、loadframe 返回為空

*************************===

注意:createobject返回為空,可能的原因是m_pframeclass定義的cframewnd物件沒有申明動態建立效能(declare_dyncreate/implement_dyncreate)

MFC單文件框架分析及執行流程

首先來分析一下mfc單文件類的結構 它包括如下幾個類 caboutdlg 對話框框類,對應應用程式的 幫助 關於 選單,彈出 關於 對話方塊。cmainframe 派生自cframewnd類,為框架視窗物件,對應應用程式的主視窗。c view 派生自檢視類cview 為檢視物件,對應應用程式的客戶視...

MFC的程式執行的整個流程

mfc 的程式執行的整個流程 第一步 宣告乙個全域物件 ex myobject 在我們自己寫的程式裡頭。第二步 由於 winmain 已經寫好了成 mfc函式,所以它編譯的時候會自動鏈結進來。於是,開始執行 afxwinmain 第三步 它做什麼動作呢?先取得之前宣告物件的指標,然後開始呼叫 myo...

Php session內部執行流程的再次剖析

標籤 session 近期再次分析了php session內部的執行流程,我將在這篇文章中簡要地概括出php內部關於session的執行步驟。首先php中的session其實就是作為乙個擴充套件載入到php核心中的。我們可以將它理解成乙個擴充套件就可以了。當session擴充套件被載入時 標籤 se...