![]() ![]() ![]()
|
BREW C++ ライブラリ & GUI フレームワーク : SophiaFramework 3.0 |
SophiaFramework で定義されている、診断用のマクロです。
これらのマクロは、TARGET_BUILD_DEBUG マクロが定義されているときのみ有効になります。 このマクロが未定義の場合は何も行いません。
TRACE マクロは、デバッグ出力を行うためのマクロです。 TARGET_ENVIRONMENT_SIMULATOR マクロが定義されている場合は SFXHelper::dbgprintf、すなわち BREW ヘルパー関数の DBGPRINTF に置き換えられます。
また逆に、TARGET_ENVIRONMENT_SIMULATOR マクロが定義されていない場合、 TRACE マクロは空に定義され、処理に影響を与えません。
このマクロは次のように使用します。
SInt16 ComplicatedCaculation(SInt16 data); Void Evaluate(Void) { SInt16 val = 0; ... // val の値が変化するような処理 SInt16 result = ComplicatedCalculation(val); TRACE("result = %d (in Evaluate, Line = %d)", result, __LINE__); ... }
この例では、ComplicatedCaculation の返り値とコード上での現在地を 出力ウィンドウに表示します。
![]() |
注意事項 |
|---|---|
TARGET_ENVIRONMENT_SIMULATOR マクロが定義されていない場合、 TRACE マクロは空に定義されます。 従って、TRACE マクロの引数に代入や メンバ変数を変更する関数の呼び出しを含めた場合、 思わぬ結果を引き起こす可能性があります。 | |
ASSERT マクロは、「必ず満たされなければならない条件」が 満たされていることを開発中に検証するために使用します。
TARGET_ENVIRONMENT_SIMULATOR マクロが定義されている場合、 ASSERT マクロは 1 つの Bool 型の引数にとり、 その引数の値が false の場合は警告メッセージとソースファイル名、 行番号を出力ウィンドウに表示します。
逆に TARGET_ENVIRONMENT_SIMULATOR マクロが定義されていない場合、 ASSERT マクロは何もしません(引数の比較も行いません)。
このマクロは次のように使用します。
// Example.cpp SFMTYPEDEFCLASS(MyClass) class MyClass{ public: Initialize(Void); ... }; ... // ここが 4093 行目 Void Function(MyClassConstPtr obj) { ASSERT(obj != null); obj->Initialize; ... } ...
この例では obj が空ポインタではないことを確認しています。 仮に obj が空ポインタである場合は、出力ウィンドウに
ASSERT failed : line 4096, file 'Example.cpp'
と表示されます。
![]() |
注意事項 |
|---|---|
|
TARGET_ENVIRONMENT_SIMULATOR マクロが定義されていない場合、 ASSERT マクロは空に定義されます。 従って、ASSERT マクロの引数に代入や メンバ変数を変更する関数の呼び出しを含めた場合、 思わぬ結果を引き起こす可能性があります。 また、 ASSERT マクロは引数の比較結果が偽の場合は警告メッセージを 表示するだけで、プログラムの停止は行いません。 | |
VERIFY マクロは、「必ず満たされなければならない条件」が 満たされていることを開発中に検証するために使用します。
TARGET_ENVIRONMENT_SIMULATOR マクロが定義されている場合、 VERIFY マクロは 1 つの Bool 型の引数にとり、 その引数の値が false の場合は警告メッセージとソースファイル名、 行番号を出力ウィンドウに表示します。
逆に TARGET_ENVIRONMENT_SIMULATOR マクロが定義されていない場合、 VERIFY マクロは引数の比較のみを行います。
TARGET_ENVIRONMENT_SIMULATOR マクロが定義されていない場合に 引数の比較を行う以外、ASSERT マクロと同じです。
|
Copyright (C) 2002 - 2009 Sophia Cradle, Inc. All Rights Reserved. |
![]() ![]() ![]()
|