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
Libérer: 2024-11-17 20:15:02
original
916 Les gens l'ont consulté

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
Copier après la connexion

Pour exemple :

IDC_MYTEXTFILE TEXTFILE "mytextfile.txt"
Copier après la connexion

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;
}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal