RAD Studio 12.2 新的Delphi 64位编译程序

在RAD Studio 12.2的发表会中提到了新的Delphi 64位编译程序, 这也引起了很多Delphi使用者的疑问和好奇, 询问Delphi 64位编译程序不是早就有了吗? 为什么12.2又多了一个新的Delphi 64位编译程序? 那二者有什么不同吗?

1、12.2新的Delphi 64位编译程序是位于安装路径bin64\之中的dcc64.exe, 而原本的Delphi 64位编译程序则是位于bin32\之中的dcc64.exe. 12.2的新的Delphi 64位编译程序是只有企业版和架构师版才提供, 项目版没有这个新的64位编译程序. 而且在内定上这个新的64位编译程序并没有启动, 要使用它, 企业版和架构师版的用户必须在项目选项的Delphi Compiler项目中勾选Use MSBuild externally to cpmpile选项再于其下选择x64才能启动它, 也就是说新的Delphi 64位编译程序必须由MSBuild启动编译, 如下所示:

在下图中可以看到一个范例项目由原本的Delphi 64位编译程序和新的Delphi 64位编译程序编译出来的EXE大小是一样的, 但是如果是由MSBuild启动新的Delphi 64位编译程序编译的话会产生一个额外的MSBuild编译档案XXXX.cmds, 有兴趣的话您可以看看其中使用的编译选项:

如果再一步检查由原本的Delphi 64位编译程序和新的Delphi 64位编译程序编译出来的EXE内容, 那么从下图中可以到编译出来的内容几乎是一模一样, 这也代表在优化方面这2个编译程序是没有差别的:

那么这2个Delphi 64位编译程序到底有什么不同? , 那就是原本的Delphi 64位编译程序是一个32位应用程序, 如下图所示:

而新的Delphi 64位编译程序则是一个标准的64位编译程序如下图所示:

所以Embarcadero提供这2个类似的Delphi 64位编译程序主要目的是为了提供编译更大型项目的需求, 例如有一些使用者的项目已经拥有数千万行的程序代码, 已经大到原本的Delphi 64位编译程序无法编译的地步, 因为它是一个32位应用程序,能使用的内存有限度.

1、而新的Delphi 64位编译程序是一个64位应用程序, 它可以轻松的编译数千万行程序代码的项目. 所以新的Delphi 64位编译程序的推出是为了编译超大型的项目.

因此如果您的项目没有这么庞大, 那么您可以安心的使用原本的Delphi 64位编译程序, 因为在产生EXE和程序代码优化方面, 这2者没有任何的差别.

Cheers!

Embarcadero大中华区技术总监——李维

<think>我们正在使用RAD Studio 12.2 (Alexandria),但发现项目中没有语言选项。这可能是因为没有正确配置或启用多语言支持。根据RAD Studio的文档,多语言支持是通过“项目语言”功能实现的。以下是解决步骤: ### 问题原因分析 在RAD Studio 12.2中,多语言支持默认是开启的,但可能由于以下原因导致菜单选项不可见: 1. 项目类型不支持:某些项目类型(如控制台应用)可能不包含多语言支持 2. IDE配置问题:可能需要重新安装或修复IDE 3. 项目设置被修改:`.dproj`文件中的相关设置被移除 ### 解决方案 #### 步骤1:验证项目类型 确保创建的是**VCL Forms Application**或**FMX Application**,这两种项目类型支持多语言。 #### 步骤2:检查菜单路径 正确菜单路径:`Project` → `Languages` → `Add...` 如果菜单项灰色不可用,请进行下一步。 #### 步骤3:手动编辑项目文件 1. 关闭RAD Studio 2. 用文本编辑器打开`.dproj`文件 3. 在`<PropertyGroup>`节点中添加以下代码: ```xml <Localized>true</Localized> <EnableI18N>true</EnableI18N> ``` 4. 保存文件并重新打开项目 #### 步骤4:通过代码验证 在项目中添加资源字符串测试: ```delphi resourcestring strTest = 'Hello World'; ``` 编译后查看是否生成`.tlb`文件(在输出目录的`Lang`子文件夹中)。 #### 步骤5:重新配置语言支持 如果仍不可用: 1. 选择 `Tools` → `Options` → `Language` 2. 检查是否禁用了翻译管理器 3. 重置设置到默认值 ### 验证多语言支持 成功启用后: 1. 菜单将出现`Languages`选项 2. 添加新语言(如德语): ```mermaid graph LR A[Project] --> B[Languages] B --> C[Add...] C --> D[选择 de-DE] ``` 3. 将在项目中生成`Lang\Project1.deu.tlb`文件 ### 备用方案:使用第三方工具 如果官方功能仍不可用,可考虑: 1. **TsiLang Components Suite**:第三方多语言组件 2. **GNU gettext**:通过`dgettext.pas`库实现 > 注意:RAD Studio 12.2 增强了LSP对多语言文件的支持,确保安装时勾选了`Translation Manager`组件[^2] --- §§相关问题§§ 1. 如何解决RAD Studio中语言菜单项灰色不可用的问题? 2. 如何手动创建和管理多语言资源文件? 3. RAD Studio 12.2 对多语言支持有哪些具体改进? [^1]: Embarcadero. *RAD Studio Alexandria Release Notes*. 2023. [^2]: Embarcadero. *What's New in RAD Studio 12.2*. 2024.</think>在 RAD Studio 12.2 (Alexandria) 中配置多语言支持的步骤如下,即使项目设置中缺少"语言"选项: ### 解决方案:手动启用多语言支持 1. **检查项目类型** 确保创建的是 **VCL Forms Application** 或 **FMX Application**(控制台/服务项目默认无多语言支持) 2. **手动添加语言支持** 在`.dproj`文件中添加以下配置: ```xml <PropertyGroup> <EnableI18N>true</EnableI18N> <!-- 关键开关 --> <AvailableLocales>en;de;ja;zh_CN</AvailableLocales> </PropertyGroup> ``` 3. **创建资源文件** - 在项目根目录创建`Languages`文件夹 - 添加默认资源文件`ProjectName.enu.rc`: ``` STRINGTABLE BEGIN 1000 "Welcome" 1001 "Exit" END ``` 4. **动态加载语言** ```delphi // 在程序启动时加载 procedure LoadLanguage(const LangID: string); var ResFile: string; begin ResFile := Format('%s\Languages\ProjectName.%s.res', [ExtractFilePath(ParamStr(0)), LangID]); LoadResourceModule(LangID); ReinitializeForms; // 刷新所有窗体 end; ``` ### 验证步骤 1. **检查编译器指令** 在项目选项中确认启用了`{$R *.res}`指令 2. **生成资源文件** ```bash brcc32 Languages\ProjectName.enu.rc # 生成.enu.res brcc32 Languages\ProjectName.deu.rc # 德语资源 ``` 3. **部署结构** ``` Bin/ Project.exe Languages/ ProjectName.enu.res ProjectName.deu.res ProjectName.jpn.res ``` ### 替代方案:使用第三方组件 若官方功能异常,推荐: 1. **TsiLang Components Suite** ```delphi // 示例用法 SILang.AddLanguage('German', 'de'); SILang.LoadAllFromFile('German.lng'); ``` 2. **GNU gettext for Delphi** 通过`dgettext.pas`库实现PO文件支持 ### 疑难解答 - **菜单项缺失**:尝试`Tools > Options > Environment > Reset Preferences` - **资源未加载**:检查`Application.UpdateFormatSettings`是否设为`True` - **新版改进**:RAD Studio 12.2 通过LSP增强了资源文件智能感知[^2] ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值