前のページ次のページ上に戻るホーム BREW C++ ライブラリ & GUI フレームワーク : SophiaFramework 3.0

6.1. コーディングルール

この章では、SophiaFramework のコーディング規約について、最低限必要なものを解説します。詳細は 型・マクロリファレンス を参照してください。

6.1.1. ヘッダのインクルード

SophiaFramework を使用するには、ヘッダの先頭で SophiaFramework.hpp をインクルードします。KDDI 拡張インターフェイスを使用する場合は、インクルード前に TARGET_EXTENSION_KDDI マクロを define します。

#define TARGET_EXTENSION_KDDI
#include <SophiaFramework.hpp>

6.1.2. クラスの命名規則

SophiaFramework のクラス命名規則(接頭辞) は次の通りです。

SFR... GUI フレームワークに関するクラス
SFX... ユーティリティ クラス
SFU... 一部の古いユーティリティ クラス
SFB... BREW インターフェースのラッパー クラス

より詳しいカテゴリー分けは命名規則を参照してください。

6.1.3. 型

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バイト文字型

6.1.4. エラー処理

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: // エラーが発生していない
            ...
    }
    ...
}

6.1.5. デバッグ

SophiaFramework には、デバッグのための機能が用意されています。デフォルトでは、

  • エミュレータ上でのコンパイル → デバッグモード ON
  • 実機上でのコンパイル → デバッグモード OFF

となっています。実機上でデバッグモード を 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));

// 使用後、解放を忘れている

上の図は、アプリ終了時のデバッグ出力です。メモリ解放忘れが発生した場合、その場所(ファイル名と行番号)とサイズが表示されます。

全デバッグ機能はデバッグを参照してください。