Heim > Backend-Entwicklung > C++ > Wie kann ich eine Textdatei als Ressource in meine native Windows-Anwendung einbetten?

Wie kann ich eine Textdatei als Ressource in meine native Windows-Anwendung einbetten?

DDD
Freigeben: 2024-12-12 19:26:14
Original
912 Leute haben es durchsucht

How Can I Embed a Text File as a Resource in My Native Windows Application?

Textdatei als Ressource in native Windows-Anwendung einbetten

Problem: Sie suchen nach einer Methode, um den Inhalt einer Textdatei in eine ausführbare Binärdatei einzubetten eine Ressource, auf die zur Laufzeit zugegriffen werden kann.

Lösung: Nutzen Sie eine benutzerdefinierte Ressource in Ihrem native Windows-Anwendung, um dies zu erreichen.

Benutzerdefiniertes Ressourcenformat

Die Struktur einer benutzerdefinierten Ressource, definiert in MSDN, ist:

nameID typeID filename
Nach dem Login kopieren

Wobei:

  • nameID: Eindeutige 16-Bit-Ganzzahl ohne Vorzeichen, die identifiziert Ressource.
  • Typ-ID: Eindeutige 16-Bit-Ganzzahl ohne Vorzeichen größer als 255, die den Ressourcentyp identifiziert.
  • Dateiname: Pfad zu der Datei, deren Binärdatei Inhalte werden eingebettet.

Einbetten eines Textes Datei

Betten Sie die Textdatei ein, indem Sie Ihrer Ressourcendatei einen Eintrag hinzufügen:

IDR_MYTEXTFILE TEXTFILE "mytextfile.txt"
Nach dem Login kopieren

Stellen Sie sicher, dass die Ressourcen-IDs (nameID und typeID ) und die Datei „resource.h“ sind konsistent.

Laden der eingebetteten Datei

Einschließen die erforderlichen Windows-Header und definieren Sie eine Funktion zum Laden der Ressource:

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

void LoadFileInResource(int name, int type, DWORD& size, const char*& data)
{
    // ... (Error checking omitted for clarity)
    HRSRC rc = ::FindResource(handle, MAKEINTRESOURCE(name),
        MAKEINTRESOURCE(type));
    HGLOBAL rcData = ::LoadResource(handle, rc);
    size = ::SizeofResource(handle, rc);
    data = static_cast<const char*>(::LockResource(rcData));
}
Nach dem Login kopieren

Verwendungsbeispiel:

int main()
{
    DWORD size = 0;
    const char* data = NULL;
    LoadFileInResource(IDR_MYTEXTFILE, TEXTFILE, size, data);
    // ... (Use the data pointer to access the resource contents)
    return 0;
}
Nach dem Login kopieren

Hinweis:

  • Das Ändern der Ressourcendaten erfordert die Verwendung von BeginUpdateResource(), UpdateResource() und EndUpdateResource().
  • Die Ressource wird automatisch gelöscht, wenn das Programm beendet wird.

Das obige ist der detaillierte Inhalt vonWie kann ich eine Textdatei als Ressource in meine native Windows-Anwendung einbetten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage