就單行的描述說明,
CRuntimeClass* CRuntimeClass::pFirstClass = NULL;
令 CRuntimeClass 裡面的指標 pFirstClass 為NULL ?
------------------------------------------------------------------
static CObject* PASCAL CreateObject();
宣告一個靜態物件指標 , 名稱為 PASCAL ?? CreateObject() ??
-------------------------------------------------------------------
CObject* PASCAL CFrameWnd::CreateObject() { return new CFrameWnd; }
定義 PASCAL裡面的CreateObject 函式, 傳回一個新建立的物件 , 其型態為 CFrameWnd ,
不懂為什麼前面要加 CObject* ??
補充說明:
struct CRuntimeClass
{
// Attributes
LPCSTR m_lpszClassName;
int m_nObjectSize;
UINT m_wSchema; // schema number of the loaded class
CObject* (PASCAL* m_pfnCreateObject)(); // NULL => abstract class
CRuntimeClass* m_pBaseClass;
CObject* CreateObject();
static CRuntimeClass* PASCAL Load();
// CRuntimeClass objects linked together in simple list
static CRuntimeClass* pFirstClass; // start of class list
CRuntimeClass* m_pNextClass; // linked list of registered classes
};
感謝~~~
MFC,請問句尾的" \ " 有什麼用意嗎?
IMPLEMENT_DYNCREATE 的疑問
感覺您需要的是一本書,
從頭到尾的將書看完應該就懂了.
☆ 私人訊息直接刪除不再回覆 ☆ 願望 : bovuhPPjMnEfkyhggnsJdABaLFPuhXT4
只是在這個class裏定義一個同class的指標變數而已.
資料結構學過嗎? 實作有很多有類似的用法....
2.google "MFC PASCAL"
3.看過MFC的Hierarchy Chart(在MSDN裏)了嗎? 如果沒有最好早點去看...
C++的upcasting與downcasting
CObject->CWnd->CFrameWnd
寫程式一定要自己完全理解才行, 所以只能點到為止, 其它的自己查吧.
與失敗為伍者,天天靠盃都是別人的錯。
與成功為伍者,天天跟失敗切磋直到不再出錯。
內文搜尋

X