Maison >développement back-end >C++ >Comment puis-je intégrer des fichiers texte en tant que ressources dans des applications Windows natives ?

Comment puis-je intégrer des fichiers texte en tant que ressources dans des applications Windows natives ?

DDD
DDDoriginal
2024-11-17 20:15:02917parcourir

How can I embed text files as resources in native Windows applications?

Intégration de fichiers texte en tant que ressources dans des applications Windows natives

Dans la programmation Windows native, il est possible d'incorporer des fichiers texte dans le binaire en tant que ressources , permettant un accès et une manipulation pratiques au sein de l'application. Ceci est réalisé grâce à la création de ressources définies par l'utilisateur.

Pour intégrer un fichier texte, créez un fichier de ressources (.rc) et ajoutez des entrées au format suivant :

nameID typeID filename

Pour exemple :

IDC_MYTEXTFILE TEXTFILE "mytextfile.txt"

où :

  • IDC_MYTEXTFILE est un identifiant unique de 16 bits pour la ressource
  • TEXTFILE est un type de ressource défini par l'utilisateur (en utilisant un nombre supérieur à 255)
  • "mytextfile.txt" est le chemin d'accès au fichier texte

Pour charger et accéder au fichier texte intégré pendant l'exécution :

#include <windows.h>
#include <cstdio>
#include "resource.h"

void LoadFileInResource(int name, int type, DWORD& size, const char*& data)
{
    HMODULE handle = GetModuleHandle(NULL);
    HRSRC rc = FindResource(handle, MAKEINTRESOURCE(name), MAKEINTRESOURCE(type));
    HGLOBAL rcData = LoadResource(handle, rc);
    size = SizeofResource(handle, rc);
    data = static_cast<const char*>(LockResource(rcData));
}

int main()
{
    DWORD size = 0;
    const char* data = NULL;
    LoadFileInResource(IDC_MYTEXTFILE, TEXTFILE, size, data);

    char* buffer = new char[size+1];
    memcpy(buffer, data, size);
    buffer[size] = 0;
    printf("Contents of text file: %s\n", buffer);

    delete[] buffer;
    return 0;
}

Notez que les données intégrées ne peuvent pas être modifiées directement en raison de leur présence dans le binaire exécutable. Pour modifier la ressource, utilisez les fonctions BeginUpdateResource(), UpdateResource() et EndUpdateResource().

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