Heim > Backend-Entwicklung > C++ > Hauptteil

Wie bette ich Textdateidaten in eine Windows-Anwendungsressource in C ein?

DDD
Freigeben: 2024-11-24 12:05:11
Original
578 Leute haben es durchsucht

How do I embed text file data into a Windows application resource in C  ?

Textdateidaten in eine Windows-Anwendungsressource einbetten

In C-Windows-Anwendungen kann es vorkommen, dass Sie Daten aus einer Windows-Anwendung einbetten möchten Textdatei direkt in den Ressourcenabschnitt der ausführbaren Datei. Auf diese Weise werden die Daten zu einem integralen Bestandteil der Programmbinärdatei, wodurch das Laden und Parsen externer Dateien entfällt.

Um dies zu erreichen, können Sie den Ressourceneditor von Visual Studio verwenden oder die Ressource manuell in einer Ressource definieren Skriptdatei. Hier sind die Schritte zum Einbetten einer Textdatei als Ressource:

  1. Erstellen Sie die Ressourcendatei:

    • Erstellen Sie eine neue Ressource Skriptdatei (z. B. resources.rc) in Ihrem Projektverzeichnis.
    • Fügen Sie einen Eintrag zum Ressourcenskript hinzu mit die folgende Syntax:

      NameID TypeID Filename
      Nach dem Login kopieren

    Wobei:

    • NameID ist eine eindeutige 16-Bit-Ganzzahl, die die Ressource identifiziert.
    • TypeID ist eine eindeutige 16-Bit-Ganzzahl, die den Ressourcentyp identifiziert. Sie können diesen Typ in der Ressourcen-Header-Datei Ihres Projekts (z. B. resources.h) mithilfe von Makros definieren.
    • Dateiname ist der Pfad zu der Textdatei, die Sie einbetten möchten.

    Für Beispielsweise könnten Sie den folgenden Eintrag einfügen:

    IDR_MYTEXTFILE TEXTFILE "data.txt"
    Nach dem Login kopieren
  2. Kompilieren Sie die Ressource Datei:

    • Klicken Sie in Visual Studio mit der rechten Maustaste auf die Ressourcenskriptdatei und wählen Sie „Ressourcendatei kompilieren“. Dadurch wird eine kompilierte Ressourcendatei (.res) generiert, die die Binärdaten Ihrer Textdatei enthält.
  3. Laden der eingebetteten Ressource:

    • Verwenden Sie die Funktionen FindResource und LoadResource, um ein Handle für die eingebettete Ressource abzurufen.
    • Sperren Sie die Ressourcendaten mit der LockResource-Funktion.
    • Greifen Sie mithilfe des zurückgegebenen Zeigers auf die Binärdaten der Textdatei zu.

Hier ist ein Beispiel-Codeausschnitt:

HMODULE handle = GetModuleHandle(NULL);
HRSRC rc = FindResource(handle, MAKEINTRESOURCE(IDR_MYTEXTFILE), MAKEINTRESOURCE(TEXTFILE));
HGLOBAL rcData = LoadResource(handle, rc);
DWORD size = SizeofResource(handle, rc);
const char *data = (const char *)LockResource(rcData);
Nach dem Login kopieren

Beachten Sie, dass diese Methode keine direkte Änderung der eingebetteten Daten innerhalb der ausführbaren Datei ermöglicht. Bei Bedarf können Sie die Funktionen BeginUpdateResource, UpdateResource und EndUpdateResource verwenden, um Aktualisierungen durchzuführen.

Das obige ist der detaillierte Inhalt vonWie bette ich Textdateidaten in eine Windows-Anwendungsressource in C ein?. 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