Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann ich Textdateien als Ressourcen in native Windows-Anwendungen einbetten?

Wie kann ich Textdateien als Ressourcen in native Windows-Anwendungen einbetten?

DDD
DDDOriginal
2024-11-17 20:15:02858Durchsuche

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

Textdateien als Ressourcen in native Windows-Anwendungen einbetten

In der nativen Windows-Programmierung ist es möglich, Textdateien als Ressourcen in die Binärdatei einzubetten , was einen bequemen Zugriff und eine bequeme Handhabung innerhalb der Anwendung ermöglicht. Dies wird durch die Erstellung benutzerdefinierter Ressourcen erreicht.

Um eine Textdatei einzubetten, erstellen Sie eine Ressourcendatei (.rc) und fügen Sie Einträge im folgenden Format hinzu:

nameID typeID filename

Für Beispiel:

IDC_MYTEXTFILE TEXTFILE "mytextfile.txt"

wobei:

  • IDC_MYTEXTFILE ist eine eindeutige 16-Bit-Kennung für Ressource
  • TEXTFILE ist ein benutzerdefinierter Ressourcentyp (mit einer Zahl größer als 255)
  • „mytextfile.txt“ ist der Pfad zur Textdatei

So laden Sie die eingebettete Textdatei während der Laufzeit und greifen darauf zu:

#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;
}

Beachten Sie, dass die eingebetteten Daten aufgrund ihrer Anwesenheit nicht direkt geändert werden können innerhalb der ausführbaren Binärdatei. Um die Ressource zu ändern, verwenden Sie die Funktionen BeginUpdateResource(), UpdateResource() und EndUpdateResource().

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

Stellungnahme:
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