如何在Embarcadero c++ Builder 11 Alexandria中注册Win32和Win64组件.<



我找不到关于如何在Embarcadero c++ Builder 11 Alexandria Professional中注册组件(包)的信息,用于32位和64位项目。

我找到的一些信息在https://docwiki.embarcadero.com/RADStudio/Alexandria/en/64-bit_Windows_Application_Development.

我看到,对于Delphi,您必须使用以下语法(这是我在2014年论坛中发现的):

unit agnosticu;
interface
uses
System.Classes;
type
TAgnosticComponent = class(TComponent)
end;
[ComponentPlatforms(pidWin32)]
TWin32Component = class(TComponent)
end;
[ComponentPlatforms(pidWin64)]
TWin64Component = class(TComponent)
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents('Test', [TAgnosticComponent, TWin32Component, TWin64Component]);
end;
end.

在c++中,我似乎已经明白我需要修改以下代码部分:

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

但是关于c++,我没有找到任何相关的信息。

我似乎明白我应该使用ComponentPlatformsAttribute类和pidWin32pidWin64属性,但我不知道如何使用。

或者,在c++中,修改RC_DATA资源的PLATFORMTARGETS变量是唯一的解决方案吗?

有人能帮我吗?

通过一些测试,我意识到没有必要对原始代码进行任何更改。64位平台的存在足以将. bpl文件(32位版本)的变量'PLATFORMTARGETS'设置为值3,即包兼容32位和64位(而不是之前的值1对应仅32位)。

相关内容

  • 没有找到相关文章

最新更新