リソース ファイルに任意のバイナリ データを保存できますか ?
リソースエディタ を使用して、 任意のバイナリ データを画像ファイルとしてリソース ファイルに保存できます。 リソース ファイルからバイナリ データを取り出すには、 ISHELL_LoadResData 関数や ISHELL_LoadResDataEx 関数を使用します。
リソース ファイルから、任意のバイナリ データを取り出す手順を記載します。
- ISHELL_LoadResData 関数や ISHELL_LoadResDataEx 関数を使用し、 リソース ファイルから画像データとしてバイナリ データを取得します。
- 手順 1 で取得したデータの第 1 バイト目から、任意のバイナリ データの開始オフセット値を取得します。
- 手順 1 で取得したデータにオフセット値を加算し、任意のバイナリ データを取得します。
※ 第 3 バイト目から始まる文字列は、MIME タイプを示しています。
SophiaFramework では、 SFBShell::LoadResData 関数や SFBShell::LoadResDataEx 関数を使用します。
[ BREW API のみを使用したコード ]
// リソース ファイルから読み込むバイナリ データのリソース ID #define IDR_MY_DATA 0x0010 byte* tmp = NULL; void* data = NULL; byte offset = 0; // リソース ファイルから画像データとして、バイナリ データを取得します。 // 画像としてデータを取り出すため、RESTYPE_IMAGE を引数に指定します。 tmp = (byte*)ISHELL_LoadResData(shell, MYRESOURCE_RES_FILE, IDR_MY_DATA, RESTYPE_IMAGE); // オフセット値を取得します。 offset = *tmp; // オフセット値を加算し、任意のバイナリ データを取得します。 // オフセットされるデータ位置には、MIME 文字列が格納されています。 data = tmp + offset;
[ SophiaFramework を使用したコード ]
// リソース ヘッダーファイルをインクルードします。 #include "MyResource_res.h" SFBShellSmp shell = SFBShell::GetInstance(); SFBBitmapSmp bmp; // リソース ファイルからビットマップを取得します。 bmp = shell->LoadResBitmap(MYRESOURCE_RES_FILE, IDB_MY_PICTURE);