控制項中如果自定義了屬性編輯器,需要分成設計期包和執行期包。實際上是同乙份**,分別命名為兩個bpk工程。我的設計包叫buttongaphic.bpk,而執行期包命名為toolbutton.bpk。在編譯這兩個包時,也要注意options中的設定。如下圖:
分別編譯這兩個bpk後,會在c++builder相關目錄中產生以bpk名字命名的檔案,如buttongaphic.bpl、buttongaphic.bpi、buttongaphic.lib和toolbutton.bpl、toolbutton.bpi、toolbutton.lib
還有幾點要說明:
1、在編譯設計期包的時候,要在requires中加入designide.bpi。
2、在編譯執行期包的時候,不要包含#include "editproperty.hpp"檔案。(本控制項中定義了自己的屬性編輯器,從tpropertyeditor中繼承了乙個類tmypropertyeditor,單獨放在editproperty.hpp檔案中)
3、在執行期包中,不要註冊屬性編輯器。即遮蔽registerpropertyeditor**。
4、在編譯應用程式時,在build with runtime packages中加入執行時的toolbutton包,即toolbutton.bpi,toolbutton.lib,並去掉設計時的包資訊,如buttongraphic.bpi,buttongraphic.lib
這兩個bpl包的名字名字雖然不同,但是因為bpl中控制項類是一樣的,所以應用程式發行時,能正常執行。
如果你選擇了圖中的第三個選項designtime and runtime,那麼不需要分成兩個包設計。但是在編譯應用程式的時候,要加designide.bpi包,並且不能帶包編譯。即builde with runtime packages的勾不能去掉。程式在發行時也要帶上designide.bpl檔案一起。
c 有關編譯期和執行期的訪問
include using namespace std class a 出現了很有趣的結果,在main函式中,訪問到了b類中的私有方法。為什麼會出現這樣的結果呢?一般來說外部物件訪問類的私有成員,除非是友元,否則在編譯的時候就會報錯,但是上面那段 卻可以正常的編譯通過。c 因為支援物件導向程式設計,...
C 的執行期多型和編譯期多型
今日的c 不再是個單純的 帶類的c 語言,它已經發展成為乙個多種次語言所組成的語言集合,其中泛型程式設計與基於它的stl是c 發展中最為出彩的那部分。在物件導向c 程式設計中,多型是oo三大特性之一,這種多型稱為執行期多型,也稱為動態多型 在泛型程式設計中,多型基於template 模板 的具現化與...
鏈結期和執行期的動態鏈結庫
可執行檔案在查詢依賴的動態鏈結庫時,是根據 etc ld.so.conf 和 ld library path 查詢的。所以,換了機器執行 如開發機和線上機 鏈結到的共享庫可能不一致。另外,鏈結期可以hard code所要鏈結的庫的路徑。這樣,即使換了機器,執行期也會從hard code的路徑去尋找庫...