首頁  >  文章  >  後端開發  >  如何將文字檔案資料嵌入到 C 語言的 Windows 應用程式資源中?

如何將文字檔案資料嵌入到 C 語言的 Windows 應用程式資源中?

DDD
DDD原創
2024-11-24 12:05:11587瀏覽

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

將文字檔案資料嵌入Windows 應用程式資源

在C Windows 應用程式中,您可能會遇到想要嵌入來自文字檔案直接進入可執行檔的資源部分。透過這樣做,資料成為程式二進位檔案的一個組成部分,從而消除了外部文件載入和解析的需要。

要實現這一點,您可以利用 Visual Studio 的資源編輯器或在資源中手動定義資源腳本檔案。以下是將文字檔案嵌入為資源所涉及的步驟:

  1. 建立資源檔案:

    • 建立新資源專案目錄中的腳本檔案(例如resources.rc)。
    • 新增使用以下語法進入資源腳本:

      NameID TypeID Filename

    其中:

    • NameID 是識別資源的唯一16位整數。
    • TypeID 是標識資源類型的唯一 16 位元整數。您可以使用巨集在專案的資源頭檔(例如,resource.h)中定義此類型。
    • 檔案名稱是要嵌入的文字檔案的路徑。

    對於例如,您可以包括以下內容條目:

    IDR_MYTEXTFILE TEXTFILE "data.txt"
  2. 編譯資源文件:

    • 在Visual Studio 中,右鍵點選資源腳本檔案並選擇「編譯資源檔案」。這將產生一個已編譯的資源檔案 (.res),其中包含文字檔案的二進位資料。
  3. 載入嵌入資源:

    • 使用 FindResource 和 LoadResource 函數擷取嵌入的句柄資源。
    • 使用 LockResource 函數鎖定資源資料。
    • 使用傳回的指標存取文字檔案的二進位資料。

這是一個範例程式碼片段:

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);

請注意,此方法不允許直接修改執行檔中的嵌入資料。如果需要,您可以使用 BeginUpdateResource、UpdateResource 和 EndUpdateResource 函數來執行更新。

以上是如何將文字檔案資料嵌入到 C 語言的 Windows 應用程式資源中?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn