Ajouter un fichier ressource Win32 dans votre exécutable

file

Intro :

Dans un exécutable Windows, on peut stocker plusieurs fichiers. Ces fichiers en question s’appellent des « ressources ».

Prérequis :

– Savoir lire du C++

– Savoir se servir de Visual Studio C++

Explications :

Le fichier à intégrer peut-être de n’importe quel format !

On déclare ainsi dans le fichier de déclaration de ressource, la ressource en question, avec le patron de schéma suivant :

nameID typeID filename

Ce contenu doit être mis dans un fichier ressource.h

Le nom du fichier « filename » spécifie le nom d’un fichier contenant des données binaires de la ressource. Le contenu du fichier est intégré dans la ressource spécifiée. A noter que les données doivent être proprement alignées pour récupération sur une autre architecture.

Les données peuvent être définies directement entre les accolades de la manière suivante :

nameID typeID { raw-data }

18 MYRES2
{
   "Here is an ANSI string\0",    // explicitly null-terminated
}


Paramètres :

nameID : un unique nom ou une valeur de 16 bits en tout (unsigned integer) qui identifie la ressource

typeID : un unique nom (chaîne de caractères) ou un entier de 16 bits (unsigned integer) qui identifie le type de la ressource. Si un nombre est spécifié, il doit être supérieur à 255, les autres nombres sont réservés

filename : nom (chaîne de caractères) du fichier qui contient les données de la ressource. Ce nom doit correspondre à un fichier valide et existant, le nom du fichier doit être un chemin complet s’il n’est pas dans le répertoire courant

raw-data : données brutes consistant en plusieurs entiers ou chaînes de caractères

 

Résumé :

Nous avons présentée une méthode permettant d’intégrer des fichiers au sein de votre application C++. Il est aisé de récupérer leur contenu avec la fonction présentée ci-dessus.

Références :

– http://stackoverflow.com/questions/2933295/embed-text-file-in-a-resource-in-a-native-windows-application

– https://msdn.microsoft.com/en-us/library/aa381054(VS.85).aspx

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *