Nintendo MessageStudio ヘルプ

LMS_GetAttrOffset

この関数は、属性情報のインデックス番号から、属性の構造体中でのオフセット位置を取得する関数です。

属性の値はメッセージリソースファイルのATR1ブロックに格納されますが、ATR1ブロックには全ての属性の値が連続して配置されており、これだけでは、「どこに」「どんなサイズで」特定の属性値が配置されているのかを知ることができません。 ATR1ブロックを参照するには、属性の配置情報を把握しておく必要があり、通常、全ての属性をメンバ変数として並べた構造体を用いることでこれを解決します。Message Studioには、この構造体を宣言したヘッダファイルを自動で作成する機能も 組み込まれています。 しかしこの場合の問題点として、属性の配置が変更されるとATR1ブロックにおける属性の配置が変わってしまうので、同時に構造体宣言も更新しなくてはならないという点があります。つまり、アプリケーションの再ビルドが 必要となります。 LMS_GetAttrOffset関数は、LMS_GetAttrInfoIndexByName関数と併用することで、属性の名前から、特定の属性の配置位置を知ることができる関数です。 また、合わせてLMS_GetAttrType関数を用い、特定の属性のサイズを知ることでATR1ブロック中の特定の属性値への完全なアクセスが可能となり、アプリケーションの再ビルドなしに 属性の配置を変更することが可能となります。

構文

libms_s32_t LMS_GetAttrOffset( LMSProjFile* pFile, libms_s32_t nAttributeIndex );

引数

引数名意味
pFileLMSProjFile*属性のオフセットを取得したい対象のプロジェクトファイルオブジェクトを指定してください(LMS_InitProject関数で返ってきた値)。
nAttributeIndexlibms_s32_t属性情報のインデックス番号を指定します(LMS_GetAttrInfoIndexByName関数で取得した値)。

戻り値

成功した場合、属性のオフセット位置が返ります。 失敗した場合、eLMSRet_NotFoundが返ります。