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

C を使用して Windows アプリケーションの実行可能リソースにテキスト ファイルを埋め込むにはどうすればよいですか?

DDD
リリース: 2024-11-17 09:11:03
オリジナル
613 人が閲覧しました

How can I embed text files into executable resources for Windows applications using C  ?

Windows アプリケーションの実行可能リソースへのテキストの埋め込み

テキスト ファイルを含む C Windows プログラム内へのデータの埋め込みは、ユーザー定義によって実現できます。リソース。この手法では、テキスト ファイルのバイナリ コンテンツを含む別のリソース ファイルを作成し、実行時に動的にロードしてアクセスできるようにします。

リソース ファイルの作成

テキスト ファイルを埋め込むには、次のリソース ファイル (.rc) を作成します。ガイドライン:

[resourceName id] [resourceType id] [filename]
ログイン後にコピー

ここで:

  • resourceName id: リソースの一意の識別子 (例: IDR_MYTEXTFILE)。
  • resourceType id: 一意の識別子リソースタイプを指定する 255 より (例: TEXTFILE).
  • ファイル名: 埋め込むテキスト ファイルへのパス。

例:

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

リソースの読み込み

埋め込みリソースは、FindResource やリソースをロードします。実装例は次のようになります:

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

ここで:

  • name: リソース名 ID (例: IDR_MYTEXTFILE)。
  • type: リソースタイプ ID (例: TEXTFILE)。
  • size:埋め込みデータ。
  • data: 埋め込みデータへのポインタ。

使用法

埋め込みデータは、内部でアクセスして処理できます。次のスニペットで示されているように、プログラム:

// Usage example
int main()
{
    DWORD size = 0;
    const char* data = NULL;
    LoadFileInResource(IDR_MYTEXTFILE, TEXTFILE, size, data);
    // Access bytes in data - here's a simple example involving text output
    char* buffer = new char[size+1];
    ::memcpy(buffer, data, size);
    buffer[size] = 0; // NULL terminator
    ::printf("Contents of text file: %s\n", buffer); // Print as ASCII text
    delete[] buffer;
    return 0;
}
ログイン後にコピー

これらの手順に従うことで、簡単にテキスト ファイルやその他のデータをリソースとしてネイティブ Windows アプリケーションに埋め込み、動的なアクセスを確保し、コード構成を合理化します。

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

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