Delphi プロジェクトの RC ファイルのリソース エントリとしてドット (.) を使用したいと考えています。ただし、Delphi の BRCC32.exe では、リソースの名前にドット (.) を使用できません。Delphi 2010 以降、「使用するリソース コンパイラ」を
Project | Option | Resource Compiler
ネーミングでドットをサポートする RC.exe (Windows SDK Resource Compiler) に切り替えます。
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 として機能させる方法を知っている人はいますか?