Maison >développement back-end >C++ >Comment intégrer des fichiers dans des exécutables pour un déploiement simplifié ?

Comment intégrer des fichiers dans des exécutables pour un déploiement simplifié ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-01 15:37:02199parcourir

How to Embed Files into Executables for Simplified Deployment?

Intégration de fichiers dans des exécutables pour un déploiement simplifié

Vous disposez d'un petit exécutable fortement dépendant d'une image PNG. Pour éviter de distribuer une archive ZIP, vous recherchez des méthodes pour intégrer le fichier PNG (ou tout autre fichier) dans l'exécutable lui-même.

Une approche portable consiste à définir une fonction telle que :

<code class="c++">typedef unsigned char Byte;

Byte const* pngFileData()
{
    static Byte const data =
    {
        // Byte data generated by a helper program.
    };
    return data;
}</code>

Pour générer les données d'octet, utilisez un programme d'assistance qui lit le fichier PNG sous forme binaire et génère le texte d'initialisation des accolades C. ImageMagick, un utilitaire de manipulation d'images populaire, inclut un programme d'aide à cet effet.

Pour les applications spécifiques à Windows, vous pouvez utiliser le schéma de ressources Windows. Cela vous permet d'intégrer des fichiers dans l'exécutable en tant que ressources et d'y accéder à l'aide des ID de ressource.

Pour intégrer le fichier PNG dans votre exécutable à l'aide de Visual C 2010 :

  1. Ajoutez le fichier PNG à votre projet en tant que ressource.
  2. Définissez le type de ressource sur "Image" et le nom de la ressource sur une chaîne unique (par exemple, "MY_PNG").
  3. Dans votre code, déclarez un pointeur vers les données PNG :
<code class="c++">extern const unsigned char* MY_PNG_DATA;</code>
  1. Dans votre fonction d'initialisation, chargez les données PNG de la ressource :
<code class="c++">MY_PNG_DATA = (const unsigned char*)LoadResource(hInstance, MAKEINTRESOURCE(IDR_MY_PNG));</code>

En intégrant le PNG fichier dans l'exécutable, vous créez un fichier unique qui inclut toutes les ressources nécessaires à votre application, éliminant ainsi le besoin de téléchargements supplémentaires ou de ressources externes.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn