ホーム > デベロッパ > BREW FAQ

BREW FAQ : リソース ファイルに任意のバイナリ データを保存できますか?

リソース ファイルに任意のバイナリ データを保存できますか?

リソースエディタ を使用して、 任意のバイナリ データを画像ファイルとしてリソース ファイルに保存できます。

リソース ファイルからバイナリ データを取り出すには、 ISHELL_LoadResData 関数や ISHELL_LoadResDataEx 関数を使用します。

リソース ファイルから、任意のバイナリ データを取り出す手順を記載します。

  1. ISHELL_LoadResData 関数や ISHELL_LoadResDataEx 関数を使用し、 リソース ファイルから画像データとしてバイナリ データを取得します。
  2. 手順 1 で取得したデータの第 1 バイト目から、任意のバイナリ データの開始オフセット値を取得します。
  3. 手順 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);