[英]Install BPL with components implemented in an other BPL in
我正在使用C ++ Builder 10 Seattle,並且試圖安裝一個組件包,該組件包注冊在其他bpl中實現的組件。
從技術上講,我這樣做:
我創建了兩個包。 一個定義為僅運行時(comps.bpl),另一個定義為設計時(compsIDE.bpl)。 我實現自己的所有組件都包含在運行時庫中。 在設計時間包中,我包含了fcomps.bpi並添加了一個名為compsreg.cpp的單元。 在單元中,我使用以下代碼從comps.lib安裝組件:
#include "MyComponent.h"
namespace comps
{
void __fastcall PACKAGE Register()
{
TComponentClass classes[1] = {__classid(TMyComponent)};
RegisterComponents("MyComponents", classes, 0);
}
}
問題是沒有安裝組件。 我對Delphi單元使用了相同的技術,這些單元也包含在comps.bpl中並安裝了它們。
有誰知道為什么Register方法不注冊組件? 我認為唯一的原因可能是該方法從未被C ++調用,而是被Delphi調用...
希望得到您的幫助...
添加一個名為compsreg.cpp的單元
這是問題的根源。 文件中的namespace
必須與文件名匹配,否則IDE將無法正確找到導出的Register()
函數。 您需要改為將namespace comps
更改為namespace compsreg
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.