SophiaFramework UNIVERSE 5.3 |
KDDI 社 BREW 日本拡張パッケージおよび その KDDI 社 BREW 日本拡張パッケージ C++ ラッパークラス(SophiaFramework UNIVERSE オプション) をインストールしていることが前提条件になります。
SophiaFramework UNIVERSE では、KDDI 社提供 BREW 日本拡張パッケージ C++ ラッパークラスを用意しておりますが、 標準では使用できないようになっています。
KDDI 社 BREW 日本拡張パッケージ C++ ラッパークラスは、 KDDI MSP 会員である SophiaFramework UNIVERSE 製品ユーザーにだけ公開されています。
KDDI 社 BREW 日本拡張パッケージの入手先 | |
---|---|
KDDI 社 BREW 日本拡張パッケージは、下記サイトにて KDDI MSP 会員として認定されることにより入手可能です。 KDDI MSP(KDDI モバイルソリューションパートナー) URL:http://www.k-mb.biz/ |
BREW 日本拡張パッケージ C++ ラッパークラスのインストールは、 以下の手順で行います。
1. "SophiaFramework○○○KDDI\IncludeKDDI" フォルダ内のヘッダーファイルは、 "(SophiaFramework UNIVERSE インストール先フォルダ)\Include" フォルダにコピーします。 2. "SophiaFramework○○○KDDI\LibraryKDDI" フォルダ内のライブラリファイルは、 "(SophiaFramework UNIVERSE インストール先フォルダ)\Library" フォルダにコピーします。
■ Microsoft Visual Studio 6.0 の場合: "C:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin" フォルダ ■ Microsoft Visual Studio .NET 2003 の場合: "C:\Program Files\Microsoft Visual Studio .NET 2003\Common7\IDE" フォルダ ■ Microsoft Visual Studio 2005 の場合: "C:\Program Files\Microsoft Visual Studio 8\Common7\IDE" フォルダ
"SFBWrapper\Package.p.hpp" ファイルのコピー | |
---|---|
SophiaFramework UNIVERSE をバージョンアップすると、 "(SophiaFramework UNIVERSE のインストール先フォルダ)\Include\SFBWrapper\Package.p.hpp" ファイルが上書きコピーされます。 このファイルには、BREW 日本拡張パッケージ C++ ラッパークラスの情報が含まれていません。 そのため、この状態でコンパイルすると、以下のようなコンパイルエラーが発生します。 ■ Microsoft Visual C++ 6.0 の場合: ... error C2065: 'SFBKDDI○○○○○○' : 定義されていない識別子です。 ... error C2146: 構文エラー : ... ... ■ RealView Compilation Tools for BREW の場合: line *** : Error: C2225W: declaration lacks type/storage-class (assuming 'int'): 'SFBKDDI○○○○○○'
この問題は、SophiaFramework UNIVERSE バージョンアップ時に、 "SophiaFramework○○○KDDI\IncludeKDDI" フォルダ内にある、 "Package.p.hpp" ファイルを "(SophiaFramework UNIVERSE のインストール先フォルダ)\Include\SFBWrapper\Package.p.hpp" に上書きコピーすることにより解決できます。 |
KDDI 社提供 BREW 日本拡張パッケージのラッパークラスを使う場合、 SophiaFramework.hpp ヘッダーファイルをインクルードする前に TARGET_EXTENSION_KDDI マクロを定義します。
TARGET_EXTENSION_KDDI マクロの定義は、Microsoft Visual Studio の [プリプロセッサの定義] 、 RealView Compilation Tools for BREW の -D オプションで代替することも可能です。 通常、この方法で BREW 日本拡張パッケージの使用を指定します。
例 21.22. BREW 日本拡張パッケージを使うためのマクロ定義
#define TARGET_EXTENSION_KDDI // VC++ の [プリプロセッサの定義]、RVCTB の -D オプションで指定する場合は不要 #include <SophiaFramework.hpp>
SophiaFramework UNIVERSE AppWizardで、[ KDDI 拡張インターフェースを使用する ] にチェックを入れると、 Microsoft Visual Studio の [プリプロセッサの定義]で TARGET_EXTENSION_KDDI が自動的に定義されます。 ただし、RealView Compilation Tools for BREW の -D オプションは、手動で設定する必要があります。
TARGET_EXTENSION_KDDI マクロの定義を手作業で行う方法は以下の通りです。
■ Microsoft Visual C++ 6.0 の場合
1. メニューから [プロジェクト] -> [設定] を選択します。
2. [C/C++]タブを選択します。
3. [プリプロセッサの定義] の項目に TARGET_EXTENSION_KDDI を追加し、OK ボタンを押します。
■ Microsoft Visual C++ 2005 / Microsoft Visual C++ .NET 2003 の場合
1. メニューから [プロジェクト] -> [プロパティ] を選択します。
2. [C/C++] フォルダから[プリプロセッサ]を選択します。
3. [プリプロセッサの定義] の項目に TARGET_EXTENSION_KDDI を追加し、OK ボタンを押します。
■ RealView Compilation Tools for BREW 1.2 用メイクファイルの設定
RealView Compilation Tools for BREW 1.2 用メイクファイル内に TARGET_EXTENSION_KDDI を定義します。
..... #------------------------------------------------------------------------------- # Target compile time symbol definitions # # Tells the SDK source stuffs that we're building a dynamic app. #------------------------------------------------------------------------------- # DYNAPP = -DDYNAMIC_APP DYNAPP = -DDYNAMIC_APP -DTARGET_EXTENSION_KDDI .....
注意事項 | |
---|---|
TARGET_EXTENSION_KDDI マクロを定義しなかった場合、 コンパイル時に以下のようなエラーが発生します。 ■ Microsoft Visual C++ 6.0 の場合: ... error C2065: 'SFBKDDI○○○○○○' : 定義されていない識別子です。 ... error C2146: 構文エラー : ... ... ■ RealView Compilation Tools for BREW の場合: line *** : Error: C2225W: declaration lacks type/storage-class (assuming 'int'): 'SFBKDDI○○○○○○'
※1. SophiaFramework UNIVERSE AppWizardで、 [ KDDI 拡張インターフェースを使用する ] にチェックを入れても、 RealView Compilation Tools for BREW では TARGET_EXTENSION_KDDI マクロは自動的に定義されません(上記にあるように手動で定義する必要があります)。 ※2. BREW 日本拡張パッケージ C++ ラッパークラスライブラリのリンクの設定も自動的に行われません(参照: BREW 日本拡張パッケージ C++ ラッパークラスライブラリの設定)。 |
BREW 日本拡張パッケージ C++ ラッパークラスライブラリのリンクの設定は、 以下のようにして手動で行います。
■ Microsoft Visual C++ 6.0 の場合
■ BREW SDK 4.0 の場合: "$(SFHOME)\Library\SophiaFrameworkKDDI400JpnVC60.lib" ■ BREW SDK 3.1 の場合: "$(SFHOME)\Library\SophiaFrameworkKDDI310JpnVC60.lib"
■ Microsoft Visual C++ .NET 2003 の場合
■ BREW SDK 4.0 の場合: "$(SFHOME)\Library\SophiaFrameworkKDDI400JpnVCNET2003.lib" ■ BREW SDK 3.1 の場合: "$(SFHOME)\Library\SophiaFrameworkKDDI310JpnVCNET2003.lib"
■ Microsoft Visual C++ 2005 の場合
■ BREW SDK 4.0 の場合: "$(SFHOME)\Library\SophiaFrameworkKDDI400JpnVC2005.lib" ■ BREW SDK 3.1 の場合: "$(SFHOME)\Library\SophiaFrameworkKDDI310JpnVC2005.lib"
■ RealView Compilation Tools for BREW 1.2 用メイクファイルの設定
SophiaFrameworkKDDI400JpnRVCTB12.a をリンクするライブラリとして追加します。 BREW SDK 3.1 の場合は、SophiaFrameworkKDDI310JpnRVCTB12.a を追加します。
..... #=============================================================================== # MODULE SPECIFIC RULES #=============================================================================== APP_OBJS = $(OBJS) "$(SF_HOME)\Library\SophiaFrameworkBrew400JpnRVCTB12.a" "$(SF_HOME)\Library\SophiaFrameworkKDDI400JpnRVCTB12.a" .....
注意事項 | |
---|---|
BREW 日本拡張パッケージ C++ ラッパークラスライブラリのリンクの設定を行わなかった場合、 リンク時に以下のようなエラーが発生します。 ■ Microsoft Visual C++ 6.0 の場合: *********.obj : error LNK2001: 外部シンボル ""public: static class SFXBrewPointer<class SFBKDDI○○○> __cdecl SFBKDDI○○○::NewInstance(long *)" (?NewInstance@SFBKDDI○○○@@SA?AV?$SFXBrewPointer@VSFBKDDI○○○@@@@PAJ@Z)" は未解決です *********.dll : fatal error LNK1120: 外部参照 1 が未解決です。 link.exe の実行エラー ■ RealView Compilation Tools for BREW の場合: Error: L6218E: Undefined symbol static SFBKDDI○○○::NewInstance(long*) (referred from ********.o).
※ SophiaFramework UNIVERSE AppWizardで、 [ KDDI 拡張インターフェースを使用する ] にチェックを入れても、 RealView Compilation Tools for BREW の -D オプションは自動的に定義されません。 |
Copyright(c) 2002 - 2024 Sophia Cradle Incorporated All Rights Reserved. |