MFC CObject關於動態建立

2021-09-30 05:01:09 字數 1011 閱讀 4991

cobject的特性之一:動態建立,主要也是通過一對巨集定義實現的 declare_dyncreate / implement_dyncreate

#define declare_dyncreate(class_name) /

declare_dynamic(class_name) /

static cobject* pascal createobject();

#define implement_dyncreate(class_name, base_class_name) /

cobject* pascal class_name::createobject() /

/_implement_runtimeclass(class_name, base_class_name, 0xffff, /

class_name::createobject)

對照前面的declare_dynamic 和implement_dynamic,可以看出這一對動態建立的巨集做了以下幾件事:

1、定義了動態建立的方法createobject,而這一方法也implement_dyncreate中給出了具體實現

2、相對於implement_dynamic,不同之處在於增加了定義createobject的具體實現,即:return new class_name,並且

將此作為引數來初始化cruntimeclass::m_pfncreateobject函式指標。靜態cruntimeclass結構會用m_pfncreateobject在執行

時動態建立乙個class物件

源**如下:

cobjcet * cruntimeclass::createobject()

if(m_pfncreateobject==null) 

_implement_runtimeclass(cwnd, ccmdtarget, 0xffff, cwnd::createobject)

當我們呼叫cruntimeclass::createobject()時,經處理後將會轉換為 new cwnd來實現動態建立

關於創客教育的思考

不管區塊鏈的風口多麼火熱,不管人工智慧是否可以走進大家的生活,也不管vr遊戲何時能夠進軍市場。至少目前,我們仍然處於未退燒的 網際網路時代 我第一次接觸計算機時,是在2007年,我12歲。家裡買了第一台電腦是聯想的台式電腦,顯示器還是已經被淘汰掉的 crt 陰極射線映象管 作業系統是古董級的 win...

關於動態SQL

目前在oracle開發過程中,我所用到的動態sql的一點心得。我把它分為form級 table級和pl sql級。1 form級 方法一 forms ddl 支援pl sql和部分ddl 建表 forms ddl create table temp n number 刪表 forms ddl dro...

關於嘉立創的貼片小總結

貼片大片樣片最多15片 拼版只支援郵票孔smt,v割不能貼片,異形板郵票孔自己拼不了,可以找嘉立創 下單助手 的第三方平台,幾十塊錢,只出gerber檔案 拼版大小有要求,越薄拼的越小 參考 選擇元器件貼片的座標注意是單片還是拼版的,要和檔案一致 目前只能貼一面,只貼貼片封裝 不貼的元器件在料單裡要...