首页 > 解决方案 > Delphi 将本地化的 DLL 数据嵌入到 EXE

问题描述

从 Delphi 编译器 (10.x) 我得到了 app.exe 和 app.enu 文件。app.enu 文件包含本地化的英文字符串,它确实是一个带有 STRING 和 RCDATA 部分的 DLL。App.exe 从 app.enu 加载 STRING 和 RCDATA 部分,只需调用

LoadLibraryEx(FileName, 0, LOAD_LIBRARY_AS_DATAFILE); 

我想合并两个文件(.exe + .enu/dll)并在我的 exe 应用程序中加载本地化的 STRING 和 RCDATA 部分。

我试过 Ilmerge,但只关注 .NET 程序集,而不是常规的 exe/dll(或非托管)我也环顾四周,没有找到任何明显的解决方案。

或者可能根本不可能……?

标签: delphimergelocalization

解决方案


Soluling的 I18N API 使这成为可能。

https://github.com/soluling/I18N

可以在此处找到有关此的示例。

https://github.com/soluling/I18N/tree/master/Samples/Delphi/VCL/SingleFileDeploy

资源 DLL 作为自定义资源添加。然后,当您启动应用程序时,I18N API 从 EXE 中提取 DLL。

Soluling 是付费产品,但 I18N API 是开源的。


推荐阅读