簡體   English   中英

將BPL與在其他BPL中實現的組件一起安裝

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM