Maison > développement back-end > C++ > le corps du texte

Comment puis-je intégrer des fichiers texte dans des ressources exécutables pour les applications Windows utilisant C ?

DDD
Libérer: 2024-11-17 09:11:03
original
546 Les gens l'ont consulté

How can I embed text files into executable resources for Windows applications using C  ?

Intégration de texte dans des ressources exécutables pour les applications Windows

L'intégration de données dans des programmes Windows C, y compris des fichiers texte, peut être réalisée via des paramètres définis par l'utilisateur. ressources. Cette technique implique la création d'un fichier de ressources distinct contenant le contenu binaire du fichier texte, permettant de le charger et d'y accéder dynamiquement pendant l'exécution.

Création d'un fichier de ressources

Pour intégrer le fichier texte, créez un fichier de ressources (.rc) en suivant ces instructions :

[resourceName id] [resourceType id] [filename]
Copier après la connexion

Où :

  • resourceName id : un identifiant unique pour la ressource (par exemple, IDR_MYTEXTFILE).
  • resourceType id : un identifiant unique supérieur à 255 spécifiant le type de ressource (par exemple, TEXTFILE).
  • filename : le chemin d'accès au fichier texte à intégrer.

Par exemple :

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

Chargement des ressources

La ressource intégrée peut être chargée dans le code à l'aide de fonctions telles que FindResource et LoadResource. Un exemple d'implémentation pourrait ressembler à ceci :

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

Où :

  • name : l'ID du nom de la ressource (par exemple, IDR_MYTEXTFILE).
  • type : la ressource tapez ID (par exemple, TEXTFILE).
  • size : la taille des données intégrées.
  • data : un pointeur vers les données intégrées.

Utilisation

Les données intégrées peuvent ensuite être consultées et traitées dans le programme, comme illustré par l'extrait suivant :

// Usage example
int main()
{
    DWORD size = 0;
    const char* data = NULL;
    LoadFileInResource(IDR_MYTEXTFILE, TEXTFILE, size, data);
    // Access bytes in data - here's a simple example involving text output
    char* buffer = new char[size+1];
    ::memcpy(buffer, data, size);
    buffer[size] = 0; // NULL terminator
    ::printf("Contents of text file: %s\n", buffer); // Print as ASCII text
    delete[] buffer;
    return 0;
}
Copier après la connexion

En suivant ces étapes, vous pouvez facilement intégrer des fichiers texte ou d'autres données dans vos applications Windows natives en tant que ressources, garantissant un accès dynamique et rationalisant l'organisation de votre code.

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