delphi - 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(或非托管)我也环顾四周,没有找到任何明显的解决方案。
或者可能根本不可能……?
解决方案
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 是开源的。
推荐阅读
- sql - SQL分页 - 如何增加页码
- r - 根据来自另一个 rhandon 表单元格的值更新 rhandson 表单元格
- java - 如何在 maven pom xml 中将共享文件夹设置为 outputDirectory
- flutter - Renderflex 对象在布局期间被赋予无限大小 - 颤动错误
- android - 每当创建 Exception 实例时,suspendCoroutine 都会使应用程序崩溃
- html - 我怎样才能让卡片在彼此的右侧和左侧堆叠?
- python-3.x - 仅在 Python 中使用 if-else 将整数(从 0 到 999)转换为英文单词时遇到问题
- node.js - 猫鼬没有将我的新文档保存在数组中
- swift - 从所选国家代码返回模板字符串
- azure - 使用 get 和 body 参数调用嵌套的 Azure 逻辑应用