C で Windows アプリケーション リソースにテキスト ファイル データを埋め込むにはどうすればよいですか?

DDD
リリース: 2024-11-24 12:05:11
オリジナル
589 人が閲覧しました

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

Windows アプリケーション リソースへのテキスト ファイル データの埋め込み

C Windows アプリケーションでは、テキスト ファイル データを Windows アプリケーション リソースに埋め込みたい状況が発生することがあります。テキスト ファイルを実行可能ファイルのリソース セクションに直接追加します。これにより、データはプログラム バイナリの不可欠な部分となり、外部ファイルの読み込みや解析の必要がなくなります。

これを実現するには、Visual Studio のリソース エディターを利用するか、リソース内でリソースを手動で定義します。スクリプトファイル。テキスト ファイルをリソースとして埋め込む手順は次のとおりです:

  1. リソース ファイルの作成:

    • 新しいリソースの作成プロジェクト内のスクリプト ファイル (例: resource.rc)
    • 次の構文を使用してリソース スクリプトにエントリを追加します:

      NameID TypeID Filename
      ログイン後にコピー

    ここで:

    • NameIDを識別する一意の 16 ビット整数です。 resource.
    • TypeID は、リソース タイプを識別する一意の 16 ビット整数です。マクロを使用して、プロジェクトのリソース ヘッダー ファイル (resource.h など) でこのタイプを定義できます。
    • ファイル名は、埋め込みたいテキスト ファイルへのパスです。

    の場合たとえば、次のように含めることができますエントリ:

    IDR_MYTEXTFILE TEXTFILE "data.txt"
    ログイン後にコピー
  2. リソース ファイルのコンパイル:

    • Visual Studio で、リソース スクリプト ファイルを右クリックし、 「リソースファイルをコンパイル」を選択します。これにより、テキスト ファイルのバイナリ データを含むコンパイル済みリソース ファイル (.res) が生成されます。
  3. 埋め込みリソースのロード:

    • FindResource 関数と LoadResource 関数を使用して、埋め込みオブジェクトへのハンドルを取得します。 resource.
    • 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 中国語 Web サイトの他の関連記事を参照してください。

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