Я хочу использовать точку (.) В качестве записи ресурса в файлах RC для моего проекта Delphi. Тем не менее, Delphi BRCC32.exe не допускает точку (.) В именовании ресурсов. Начиная с Delphi 2010, мы можем указать «Resource Compiler to use» в
Project | Option | Resource Compiler
для переключения на RC.exe (компилятор ресурсов Windows SDK), который поддерживает точку в именовании.
Использование RC.exe в качестве компилятора ресурсов работает для именования точек. Однако я столкнулся с проблемой использования #include в файле rc.
У меня есть файл 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.exclude.rc и system.db.exclude.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 при интерпретации включаемых файлов, как указано выше?