質問です
リリースでビルドする際
画像ファイル,音楽ファイル等も含めて
ひとまとめにして実行ファイル1個にし
その実行ファイル1個でゲームを正常に動作させるようにはできないのでしょうか?
画像ファイル等を分けておくと普通に見られるのが嫌なので
回答をよろしくお願いいたします
リソースファイルも一緒に実行ファイル化
Re:リソースファイルも一緒に実行ファイル化
環境が書かれていないのでなんとも言えませんが、『リソース 埋め込み』とか『画像 埋め込み』とかでググると何かヒットするかもしれませんよ(^-^)
Re:リソースファイルも一緒に実行ファイル化
DXライブラリでしょうか
.rcにリソース記述して
LoadSoundMemByResource( const char *ResourceName, const char *ResourceType, int BufferNum = 1 ) ;
LoadGraphToResource( int ResourceID ) ;
LoadGraphToResource( const char *ResourceName, const char *ResourceType ) ;
LoadDivGraphToResource( const char *ResourceName, const char *ResourceType, int AllNum, int XNum, int YNum, int XSize, int YSize, int *HandleBuf ) ;
などで読み込めそうですが
.rcにリソース記述して
LoadSoundMemByResource( const char *ResourceName, const char *ResourceType, int BufferNum = 1 ) ;
LoadGraphToResource( int ResourceID ) ;
LoadGraphToResource( const char *ResourceName, const char *ResourceType ) ;
LoadDivGraphToResource( const char *ResourceName, const char *ResourceType, int AllNum, int XNum, int YNum, int XSize, int YSize, int *HandleBuf ) ;
などで読み込めそうですが
Re:リソースファイルも一緒に実行ファイル化
環境が不明なのである程度環境を問わず可能な方法となるとだいぶ絞られますが。
一番簡単なのは、プログラムコード内にデータとして埋め込んでしまう方法です。
※ C/C++における BMPファイルの一例[color=#d0d0ff" face="monospace]
const unsigned char ImageBMPData[/url] =
{
0x42, 0x4d, 0x32, 0xb4, 0x04, 0x00, 0x00, 0x00,
0x00, 0x00, 0x32, 0x04, 0x00, 0x00, 0x28, 0x00,
0x00, 0x00, 0x80, 0x02, 0x00, 0x00, 0xe0, 0x01,
0x00, 0x00, 0x01, 0x00, 0x08, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xb0, 0x04, 0x00, 0xeb, 0x0a,
0x00, 0x00, 0xeb, 0x0a, 0x00, 0x00, 0xff, 0x00,
// ... 続く
};
[/color]
バイナリのテキスト変換は探せばそういうツールもあるとは思いますが、
ファイル読み込んで、標準出力かファイルにでも言語の構文に合わせて
テキストを出力するだけですので、自作してもさほど時間はかからないと思います。
でもどの方法にしても、リソースのサイズが大きくなればなるほど、
ビルド・結合に時間がかかるようになりますし、更新の手間などを考えると
実行ファイルに埋め込むということそのものがあまりお勧めはできません。
一番簡単なのは、プログラムコード内にデータとして埋め込んでしまう方法です。
※ C/C++における BMPファイルの一例[color=#d0d0ff" face="monospace]
const unsigned char ImageBMPData[/url] =
{
0x42, 0x4d, 0x32, 0xb4, 0x04, 0x00, 0x00, 0x00,
0x00, 0x00, 0x32, 0x04, 0x00, 0x00, 0x28, 0x00,
0x00, 0x00, 0x80, 0x02, 0x00, 0x00, 0xe0, 0x01,
0x00, 0x00, 0x01, 0x00, 0x08, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xb0, 0x04, 0x00, 0xeb, 0x0a,
0x00, 0x00, 0xeb, 0x0a, 0x00, 0x00, 0xff, 0x00,
// ... 続く
};
[/color]
バイナリのテキスト変換は探せばそういうツールもあるとは思いますが、
ファイル読み込んで、標準出力かファイルにでも言語の構文に合わせて
テキストを出力するだけですので、自作してもさほど時間はかからないと思います。
でもどの方法にしても、リソースのサイズが大きくなればなるほど、
ビルド・結合に時間がかかるようになりますし、更新の手間などを考えると
実行ファイルに埋め込むということそのものがあまりお勧めはできません。