Inclure les fichiers à l'aide se comportent différemment RC.EXE ou BRCC32.EXE pour construire des fichiers * .rc

StackOverflow https://stackoverflow.com/questions/4538131

  •  13-10-2019
  •  | 
  •  

Question

Je tiens à utiliser le point (.) Comme entrée de ressources dans les fichiers RC pour mon projet Delphi. Cependant, BRCC32.EXE de Delphi ne permet pas le point (.) Dans la dénomination des ressources. Depuis Delphi 2010, nous pouvons spécifier « compilateur de ressources à l'utilisation » dans

Project | Option | Resource Compiler 

pour passer à RC.exe (Windows SDK compilateur de ressources) que point d'appui dans la dénomination.

Utilisation RC.exe comme compilateur de ressources fonctionne pour point nommer que je veux. Cependant, je rencontre un problème en utilisant #include dans le fichier rc.

J'ai un fichier app.db.excludes.rc est comme suit:

#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"

Et fichier 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"

Compile les rendements du projet 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

Le problème ci-dessus se produit en cas d'utilisation RC.exe. Il fonctionne sans aucun problème si j'utilise BRCC32.EXE.

Ce problème est dû à la fois app.db.excludes.rc et system.db.excludes.rc est pas garder dans le même dossier.

Si je change 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"

Le RC.exe compilera avec succès.

Est-ce que quelqu'un a des idées sur la façon de faire fonctionne RC.exe comme BRCC32.EXE lorsque interprétons les fichiers à inclure comme ci-dessus?

Était-ce utile?

La solution 2

Au lieu d'utiliser #include pour intégrer un fichier rc:

#include "../../../../core/resource/db/excludes/system.db.excludes.rc"

Je supprimer l'utilisation de #include et ajouter "system.db.excludes.rc" dans mon projet Delphi (.dproj).

Le patché "app.db.excludes.rc" est:

HR_BRANCH_DSC     8000  "HR.BRANCH.DSC.xml"
HR_CALENDAR_DSC   8000  "HR.CALENDAR.DSC.xml"
HR_CATEGORY_DSC   8000  "HR.CATEGORY.DSC.xml"

Et mon fichier de package Delphi (.dpk) est comme suit:

package resource.db;

{$R *.res}
{$R 'payroll.db.excludes.res'}
{$ALIGN 8}
{$ASSERTIONS ON}
{$BOOLEVAL OFF}
{$DEBUGINFO ON}
{$EXTENDEDSYNTAX ON}
{$IMPORTEDDATA ON}
{$IOCHECKS ON}
....

Une entrée de ressources devrait ajouter au fichier .dpk manuellement:

{$R 'payroll.db.excludes.res'}

Cette approche fonctionne à la fois BRCC32.EXE et CGRC.exe / RC.exe .

Autres conseils

Vous pouvez essayer l'option de /I RC pour spécifier le répertoire dans lequel vos fichiers XML en direct. Il faudrait lancer RC comme une action de pré-construction afin d'obtenir ce contrôle sur son environnement d'exécution.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top