⓪編著 :蕭沖
寫這篇文章的靈感來源是來自李維在多年前的一篇注名文章:
http://www2.borland.com.tw/tw/reference9.html (2013年補:此文已不見了,有需要的可以向我要備份)
裡面提到如何使用package切割子系統方便開發與管理,並可增進效能。曾經看網友問到要如何把裡面的範例轉換成對應bcb的語法?因為裡面用到許多delphi才特有的一些功能,在c++裡原本沒有那些功能,比如說delphi的unit裡有initialization段、finalization段。再者delphi可以直接使用TComponentClass(VMT(Virtual Method Table)的實作)這個特別的類別來create instance。以下是我測試出對應到delphi的實作方式,希望以bcb開發的用戶也可以使用bpl開發出較大型的模組化程式。
★c++ builder裡的實作方式:
寫這篇文章的靈感來源是來自李維在多年前的一篇注名文章:
http://www2.borland.com.tw/tw/reference9.html (2013年補:此文已不見了,有需要的可以向我要備份)
裡面提到如何使用package切割子系統方便開發與管理,並可增進效能。曾經看網友問到要如何把裡面的範例轉換成對應bcb的語法?因為裡面用到許多delphi才特有的一些功能,在c++裡原本沒有那些功能,比如說delphi的unit裡有initialization段、finalization段。再者delphi可以直接使用TComponentClass(VMT(Virtual Method Table)的實作)這個特別的類別來create instance。以下是我測試出對應到delphi的實作方式,希望以bcb開發的用戶也可以使用bpl開發出較大型的模組化程式。
★c++ builder裡的實作方式:
bpl裡要加入:
========================================
void my_startup(void) { RegisterClass(__classid(TXxxx)); }
#pragma startup my_startup
void my_exit(void) { UnRegisterClass(__classid(TXxxx)); }
#pragma exit my_exit
#pragma exit my_exit
=======================================
於呼叫端使用Application->CreateForm(FindClass("TXxxx"),&obj_ref); //創建各種物件!
★package的特點:
package中的global變數共享在同一個process上,與dll不同。
package中的class可以再衍生成子類。
全站熱搜
留言列表