首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用在其他BPL中实现的组件安装BPL

使用在其他BPL中实现的组件安装BPL
EN

Stack Overflow用户
提问于 2016-02-11 16:36:36
回答 1查看 898关注 0票数 0

我正在使用C++ Builder 10西雅图,我正在尝试安装一个组件包,它注册在不同的bpl中实现的组件。

从技术上讲,我是这样做的:

我创建了两个包。一个定义为仅运行时(comps.bpl),另一个定义为设计时(compsIDE.bpl)。我实现的所有组件都包含在运行时库中。在用于设计的包中,我包含了fcomps.bpi,并添加了一个名为compsreg.cpp的单元。在单元中,我使用以下代码从comps.lib安装组件:

代码语言:javascript
复制
#include "MyComponent.h"

namespace comps
{
    void __fastcall PACKAGE Register()
    {
        TComponentClass classes[1] = {__classid(TMyComponent)};
        RegisterComponents("MyComponents", classes, 0);
    }
}

问题是组件没有安装。我对Delphi也使用了同样的技术,它们也包含在comps.bpl中,并且它们会被安装。

有人知道为什么Register不注册组件吗?我认为唯一的原因可能是该方法从来没有被调用为C++,但对于德尔菲.

希望你的帮助..。凯伦

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-11 22:23:32

添加一个名为compsreg.cpp的单元

这是问题的根源。文件中的namespace必须与文件名匹配,否则IDE将无法正确找到导出的Register()函数。您需要将namespace comps改为namespace compsreg

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35344948

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档