2016-09-23 3 views
-1

Je modifie mes projets Delphi pour utiliser un fichier de ressources d'informations de version au lieu de stocker des informations de version dans le fichier de projet.Symbole de marque dans la ressource d'information de version

Mon fichier VersionInfo.rc:

1 VERSIONINFO 
FILEVERSION 1,10,0,999 
PRODUCTVERSION 1,10,0,0 
FILEOS 0x4 
FILETYPE 0x1 
{ 
BLOCK "StringFileInfo" 
{ 
    BLOCK "040904E4" 
    { 
     VALUE "CompanyName", "Company Inc.\0" 
     VALUE "FileDescription", "Product\231\0" 
     VALUE "FileVersion", "1.10.0.999\0" 
     VALUE "InternalName", "Product\231\0" 
     VALUE "LegalCopyright", "\251 2016 Company Inc.\0" 
     VALUE "LegalTrademarks", "Company\231 Product\231\0" 
     VALUE "ProductName", "Product\231\0" 
     VALUE "ProductVersion", "1.10\0" 
    } 
} 

BLOCK "VarFileInfo" 
{ 
     VALUE "Translation", 0x409, 1252 
} 
} 

La marque déposée (\ 256) et le droit d'auteur (\ 251) affichage des symboles correctement dans la boîte de dialogue des propriétés du fichier, mais la marque (\ 231) ne montre pas tout. Il semble qu'aucun personnage n'est montré à sa place à moins qu'il ne soit pas imprimable. J'ai également essayé d'utiliser le symbole directement dans la ressource au lieu du code octal et je vois le même comportement.

Lorsque le symbole de marque est stocké dans le cadre de mes options de projet, il s'affiche correctement.

Comment insérer le symbole de la marque dans ma ressource?

EDIT: Informations complémentaires

J'utilise RAD Studio 10.1 Berlin et je suivais la réponse de this StackOverflow post pour créer mon fichier de ressources, configurer mes options de projet, et d'inclure la ressource dans la source de projet en utilisant {$ R 'VersionInfo.res' 'VersionInfo.rc'}. J'avais essayé d'encoder mon fichier .rc en utilisant ANSI, UTF-8, UTF-16 BE et LE et la marque ne s'affichait pas correctement dans la boîte de dialogue des propriétés du fichier ou il y a une erreur BRCC32 lors de la construction.

J'avais trouvé this web page suggérant d'utiliser le code octal pour le copyright. J'avais essayé les codes octaux pour la marque dans mon fichier VersionInfo.rc et j'ai encore vu la même chose.

J'avais aussi essayé de compiler la ressource en utilisant rc.exe et de l'ajouter à mon projet en utilisant l'élément de menu "Ajouter au projet ..." du menu Projet de Delphi. J'ai reçu des erreurs "ressources 16bit non prises en charge ..." lors de la construction.

+0

Pourquoi faites-vous cela dans ANSI? –

+0

Je n'en ai aucune idée! Je suis littéralement tombé sur hier comme une meilleure approche pour injecter des informations de version et j'ai copié un fichier d'exemple à partir d'un blog/article et trouvé un autre site qui dit que les codes octaux doivent être utilisés pour les symboles. –

+0

http://stackoverflow.com/questions/12692803/are-resource-files-compiled-as-unicode-or-ansi-code-page –

Répondre

1

Après les commentaires de David et Warren, j'ai revisité mes tests et j'ai trouvé que les travaux suivants.

  1. Créez un fichier .rc contenant du texte et des symboles si nécessaire. Le codage ANSI et UCS-2 Little Endian ont bien fonctionné pour ce fichier, étant donné le contenu de mon fichier.
  2. Compilez la ressource avec un compilateur de ressources approprié tel que rc.exe
  3. Ajoutez manuellement la ressource compilée au projet DPR ou utilisez la fonction Ajouter au projet de Delphi. Si vous utilisez l'option Ajouter au projet, assurez-vous de fermer l'onglet ouvert automatiquement pour le fichier .RES. Sinon, des erreurs "Ressource 16 bits non prise en charge ..." apparaissent lors de la construction.