ホームページ > バックエンド開発 > C++ > ネイティブ Windows アプリケーションにテキスト ファイルをリソースとして埋め込むにはどうすればよいですか?

ネイティブ Windows アプリケーションにテキスト ファイルをリソースとして埋め込むにはどうすればよいですか?

DDD
リリース: 2024-11-17 20:15:02
オリジナル
916 人が閲覧しました

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

ネイティブ Windows アプリケーションにリソースとしてテキスト ファイルを埋め込む

ネイティブ Windows プログラミングでは、テキスト ファイルをリソースとしてバイナリに埋め込むことができますにより、アプリケーション内でのアクセスと処理が容易になります。これは、ユーザー定義リソースの作成によって実現されます。

テキスト ファイルを埋め込むには、リソース ファイル (.rc) を作成し、次の形式でエントリを追加します。

nameID typeID filename
ログイン後にコピー

例:

IDC_MYTEXTFILE TEXTFILE "mytextfile.txt"
ログイン後にコピー

ここで:

  • IDC_MYTEXTFILE は一意ですリソースの 16 ビット識別子
  • TEXTFILE はユーザー定義のリソース タイプです (255 より大きい数値を使用します)
  • "mytextfile.txt" はテキスト ファイルへのパスです

実行中に埋め込みテキスト ファイルをロードしてアクセスするにはruntime:

#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;
}
ログイン後にコピー

埋め込まれたデータは実行可能バイナリ内に存在するため、直接変更できないことに注意してください。リソースを変更するには、BeginUpdateResource()、UpdateResource()、および EndUpdateResource() 関数を使用します。

以上がネイティブ Windows アプリケーションにテキスト ファイルをリソースとして埋め込むにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート