ホーム > デベロッパ > SophiaFramework > BREW C++ 逆引きコード集

BREW C++ プログラミング : SophiaFramework 逆引き FAQ・コード集

BREW SDK 4.0.0 で開発する方法 (SophiaFramework 4.1.6)

SophiaFramework 4.1.6 では、一部 BREW SDK 4.0.0 に対応しています。BREW SDK 3.1 以前の環境で開発した SophiaFramework アプリをコンパイルし実行できます。

※制約事項:
BREW SDK 4.0.0 用の新規プロジェクトは作成できません。また、BREW SDK 4.0.0 API のラッパーも提供されていません。SophiaFramework 4.1.7 以降で、提供する予定です。

■ BREW SDK 4.0.0 で開発する手順

Step 1 : Qualcomm 社サイトから BREW 4.0.0 SDK をダウンロードし、インストールします。

Step 2 : SophiaFramework 4.1.6 をインストールします。

Step 3 : 環境変数を更新するため、再起動します。

Step 4 : SophiaFramework のリンカのファイルを変更します。

Visual C++ 6.0 の場合 :
[プロジェクト] -> [設定] -> [リンク] -> [オブジェクト / ライブラリ モジュール] で [SophiaFrameworkBrew310VC6.lib] を [SophiaFrameworkBrew400VC6.lib] に変更します。

.NET の場合 :
[プロジェクト] -> [(プロジェクト名)のプロパティ] -> [リンカの入力] -> [追加の依存ファイル] で [SophiaFrameworkBrew310NET.lib] を [SophiaFrameworkBrew400NET.lib] に変更します。

Step 5 : アプリをコンパイルします。

※ AEEIramCache および AEEIRecordStore に関してコンパイラ エラーが発生します。このエラーは、BREW SDK 4.0.0 の不具合です。

以下のように変更すれば、コンパイラ エラーを回避できます。

■変更前 

static __inline int IRAMCACHE_Find(IRamCache* piRamCache,
                                   const char* cpKey, int nKeyLen,
                                   void* pVal, int* pnValLen)
 
 {
     return AEEGETPVTBL(piRamCache,IRamCache)
           ->Find(piRamCache,
                  cpKey, nKeyLen,
                  pVal, pnValLen);
}


■変更後 

static __inline int IRAMCACHE_Find(IRamCache* piRamCache,
                                   const char* cpKey, int nKeyLen,
                                   void* pVal, int* pnValLen)
{
    return AEEGETPVTBL(piRamCache,IRamCache)
            ->Find(piRamCache,
                   cpKey, nKeyLen,
                   static_cast<char *>(pVal), pnValLen);
}
■変更前 

static __inline int IRECORDSTORE_Find(IRecordStore* piRecordStore,
                                     const char* cpKey, int nKeyLen,
                                     void* pVal, int* pnValLen)
{
    return AEEGETPVTBL(piRecordStore,IRecordStore)
           ->Find(piRecordStore,
                  cpKey, nKeyLen,
                  pVal, pnValLen);
}


■変更後 

static __inline int IRECORDSTORE_Find(IRecordStore* piRecordStore,
                                         char* cpKey, int nKeyLen,
                                         void* pVal, int* pnValLen)
{
    return AEEGETPVTBL(piRecordStore,IRecordStore)
           ->Find(piRecordStore,
                  cpKey, nKeyLen,
                  static_cast<char *>(pVal), pnValLen);
}

Step 6 : もう一度、コンパイルします。

【注意事項】

1) SophiaFramework 4.1.6 では、BREW 4.0.0 用の新規プロジェクトを作成できません。

[対策] SophiaFramework 4.1.7 以降で対応いたします。

2) SophiaFramework 4.1.6 では BREW 4.0.0 API ラッパーは提供されていません。

[対策] SophiaFramework 4.1.8 以降で提供される予定です。

3) BREW 4.0.0 用シミュレータでアプリ起動すると Unknown Error(1) が発生します。

以下のサンプルアプリで発生します。

−SyncScheduler
−psec
−Recog
−pself_dom
−pself_sax

[原因] CheckAvail 関数が BREW 4.0.0 では正常に動作しないためです。

[対策] CheckAvail 関数を使わなければ正常に動作します。

4) BREW 4.0.0 用シミュレータでアプリ起動すると Unknown Error(14) が発生します。

以下のサンプルコードで発生します。

−SFXCollectionExplainer
−SFXMathematicsExplainer

[原因] モジュール名が 21 文字を超えると発生するエラーです。

[対策] BREW 4.0.0 SDKでは、モジュール名は 21 文字以下にします。

5) BREW 4.0.0 SDK には KDDI_FONT_FIXED16X16 が含まれないため、pclock アプリはコンパイルできません。