1

これを行うことは可能ですか: (教育目的で)。

画像ファイル「image.jpg」がある
とします。実行時にこの画像を作成するプログラムを作成したいとします。つまり、画像のデータはexeに保存されます。これは可能ですか?

このようなもの:resource.rcから画像ファイルをリンクし、コンパイラにデータを取得して保存するように指示します(このようなものでunsigned char data_buffer[]="binary data of the image"、プログラムが実行されると、このデータをファイルに書き込むことができます)

(私はmingwコンパイラでC++を使用しています)

どんな助けでも大歓迎です。

4

2 に答える 2

2

いくつかのオプションがあります:

1) ソース ファイルにバイト配列として追加します。ファイルからバイトを読み取り、C ソースを書き込む補助プログラムを作成するのは簡単です。例えば:

data_jpg.c:

unsigned char data_jpg[] = {1,2,3... };

data_jpg.h:

extern char data_jpg[];
const size_t data_jpg_size = 1000;

2) 実行可能ファイルにバイナリ リソースとして追加します。「エグゼ」って言ったよね?したがって、Windows を使用している可能性があります。ウィンドウ EXE ファイルには、リソース API を使用して配置できるバイナリ リソースを含めることができます。FindResourceLoadResourceおよびGlobalLock、関数を参照してください。

resource.rc

ID_DATA_JPG FILE "data.jpg"

3) バイナリ ファイルを直接 OBJ ファイルに変換し、それを実行可能ファイルにリンクします。Turbo-c の古き良き時代には、そのための BINOBJ ツールでした。そして、GNUツールはそれを行うことができます.AFAIkですが、MSツールでは、私には本当にわかりません.

于 2012-12-01T15:38:28.630 に答える
1

PE ファイルを使用すると、データ (bin データを含む) を PE ファイルの末尾にリソースとして追加できます。PE ファイルのサイズを覚えているだけです。しかし、PE のチェックサムを変更する必要があるかどうかはわかりません。また、VC++ コンパイラを使用してリソースを埋め込むのは非常に簡単です。

于 2012-12-01T16:13:28.313 に答える