我希望在我的 Delphi 项目的 RC 文件中使用点 (.) 作为资源条目。但是,Delphi 的 BRCC32.exe 不允许在资源命名中使用点 (.)。从 Delphi 2010 开始,我们可以在
Project | Option | Resource Compiler
切换到支持点命名的 RC.exe(Windows SDK 资源编译器)。
使用 RC.exe 作为资源编译器适用于我想要的点命名。但是,我在 rc 文件中使用 #include 时遇到问题。
我有一个 app.db.excludes.rc 文件如下:
#include "../../../../core/resource/db/excludes/system.db.excludes.rc"
HR_BRANCH_DSC 8000 "HR.BRANCH.DSC.xml"
HR_CALENDAR_DSC 8000 "HR.CALENDAR.DSC.xml"
HR_CATEGORY_DSC 8000 "HR.CATEGORY.DSC.xml"
和 system.db.excludes.rc 文件:
#include "../../system.h"
SYSTEM_GROUPS_DSC 8000 "SYSTEM.GROUPS.DSC.xml"
SYSTEM_SCRIPT_DSC 8000 "SYSTEM.SCRIPT.DSC.xml"
SYSTEM_USER_DSC 8000 "SYSTEM.USER.DSC.xml"
编译Delphi项目产生:
[BRCC32 Error] payroll.db.excludes.rc(3): file not found: SYSTEM.GROUPS.DSC.xml
[BRCC32 Error] payroll.db.excludes.rc(4): file not found: SYSTEM.SCRIPT.DSC.xml
[BRCC32 Error] payroll.db.excludes.rc(5): file not found: SYSTEM.USER.DSC.xml
如果使用 RC.exe,会出现上述问题。如果我使用 BRCC32.exe,它可以正常工作。
这个问题是由于 app.db.excludes.rc 和 system.db.excludes.rc 没有保存在同一个文件夹中。
如果我将 system.db.excludes.rc 更改为
#include "../../system.h"
SYSTEM_GROUPS_DSC 8000 "../../../../core/resource/db/excludes/SYSTEM.GROUPS.DSC.xml"
SYSTEM_SCRIPT_DSC 8000 "../../../../core/resource/db/excludes/SYSTEM.SCRIPT.DSC.xml"
SYSTEM_USER_DSC 8000 "../../../../core/resource/db/excludes/SYSTEM.USER.DSC.xml"
然后 RC.exe 将成功编译。
有没有人知道如何在解释上述包含文件时使 RC.exe 像 BRCC32.EXE 一样工作?