![]() ![]() ![]()
|
BREW C++ ライブラリ & GUI フレームワーク : SophiaFramework 3.0 |
この章では、SophiaFramework のコーディング規約について、最低限必要なものを解説します。詳細は 型・マクロリファレンス を参照してください。
SophiaFramework を使用するには、ヘッダの先頭で SophiaFramework.hpp をインクルードします。KDDI 拡張インターフェイスを使用する場合は、インクルード前に TARGET_EXTENSION_KDDI マクロを define します。
#define TARGET_EXTENSION_KDDI #include <SophiaFramework.hpp>
SophiaFramework のクラス命名規則(接頭辞) は次の通りです。
| SFR... | GUI フレームワークに関するクラス |
| SFX... | ユーティリティ クラス |
| SFU... | 一部の古いユーティリティ クラス |
| SFB... | BREW インターフェースのラッパー クラス |
より詳しいカテゴリー分けは命名規則を参照してください。
SophiaFramework では、標準 C++ とは異なり、以下の型・定数を用います。
| 標準 C++ (BREW) | SophiaFramework | 意味 |
|---|---|---|
| NULL | null | 空ポインタ |
| bool | Bool | ブール型 |
| TRUE | true | 真を表すブール値 |
| FALSE | false | 偽を表すブール値 |
| void | Void | void 型 |
| * | Ptr | ポインタ型(例:Bool* → BoolPtr) |
| & | Ref | 参照型(例:Bool& → BoolRef) |
| const | Const | 定数(例:const Bool → BoolConst、const BoolPtr → BoolConstPtr) |
| signed short | SInt16 | 16ビット符号あり整数 |
| unsigned long | UInt32 | 32ビット符号なし整数(その他の型は整数型参照) |
| float | Float32 | 32ビット浮動小数点 |
| double | Float64 | 64ビット浮動小数点 |
| unsigned char | Byte | バイト型 |
| char | AChar | 1バイト文字型 |
| AECHAR | WChar | 2バイト文字型 |
BREW では、catch-throw 構文が使えません。SophiaFramework では、標準 C++ 言語と親和性の高い 擬似 catch-throw 構文 を用います。
SophiaFramework で扱うエラーについては エラー型を参照してください。
| 関数 | 意味 |
|---|---|
| static_catch | エラーを取得します。 |
| static_try | エラーが発生したかどうかを取得します。 |
| static_throw | エラーを設定します。 |
| static_throws | 関数がエラーを投げることを示す目印(何もしません) |
class MyApp : public SFCApplication {
public:
Void SubFunc(Void) static_throws; // ← SubFunc はエラーを投げる。
// static_throws はそれを示す目印
Void MainFunc(Void);
...
};
Void SubFunc(Void) static_throws // ← SubFunc はエラーを投げる。
// static_throws はそれを示す目印
{
if (static_try()) { // 現在のエラーの有無をチェック
// エラーは発生していない
// オブジェクトを new する
XXXObjectPtr object = new XXXObject();
if (object == null) { // 生成に失敗したなら
static_throw(SFERR_NO_MEMORY); // エラー(メモリが足りない)を投げる
return; // static_throw は自動で return しないので、手動で return
}
}
...
}
Void MainFunc(Void)
{
...
SubFunc();
switch (static_catch()) {
// エラーに応じた処理
case SFERR_NO_MEMORY:
...
case SFERR_NO_ERROR: // エラーが発生していない
...
}
...
}
SophiaFramework には、デバッグのための機能が用意されています。デフォルトでは、
となっています。実機上でデバッグモード を ON にするには、TARGET_BUILD_DEBUG を define します。
#define TARGET_BUILD_DEBUG // ヘッダのインクルードの前に定義 #include <SophiaFramework.hpp>
デバッグ用のマクロ
| マクロ | 意味(デバッグモード ON 時) | 意味(デバッグモード OFF 時) |
|---|---|---|
| TRACE | デバッグ出力を行います(DBGPRINTF と同じ)。 | 何も出力しません。 |
| ASSERT | 条件が不成立(false)の場合、警告メッセージを出力。 | 何も出力しません。式の評価も行いません。 |
| VERIFY | 条件が不成立(false)の場合、警告メッセージを出力。 | 何も出力しません。式の評価は行います。 |
デバッグモードが ON のときにはメモリ追跡機能が働きます。
// 文字列オブジェクトを new
SFXAnsiStringPtr string = new SFXAnsiString("abcd");
// メモリを 100 バイト確保
ACharPtr p = static_cast<ACharPtr>(MemoryAllocate(100));
// 使用後、解放を忘れている

上の図は、アプリ終了時のデバッグ出力です。メモリ解放忘れが発生した場合、その場所(ファイル名と行番号)とサイズが表示されます。
全デバッグ機能はデバッグを参照してください。
|
Copyright (C) 2002 - 2009 Sophia Cradle, Inc. All Rights Reserved. |
![]() ![]() ![]()
|