gpt4 book ai didi

c++ - 使用在另一个 BPL 中实现的组件安装 BPL

转载 作者:行者123 更新时间:2023-11-28 00:06:37 61 4
gpt4 key购买 nike

我正在使用 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 调用...

希望得到您的帮助...克雷姆

最佳答案

add a Unit called compsreg.cpp

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

关于c++ - 使用在另一个 BPL 中实现的组件安装 BPL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35344948/

61 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com