我正在使用C++ Builder 10西雅图,我正在尝试安装一个组件包,它注册在不同的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++,但对于德尔菲.
希望你的帮助..。凯伦
发布于 2016-02-11 22:23:32
添加一个名为compsreg.cpp的单元
这是问题的根源。文件中的namespace必须与文件名匹配,否则IDE将无法正确找到导出的Register()函数。您需要将namespace comps改为namespace compsreg。
https://stackoverflow.com/questions/35344948
复制相似问题