まくまく投資ノート
更新: / 作成:

MQL のプログラムが、デバッグモードとリリースモードのどちらでコンパイルされているかを調べるには、#ifdef プリプロセッサで下記のマクロが定義されているかどうかを調べます。

  • _DEBUG … デバッグモードでコンパイルされている(MetaEditor 上で F5 で実行したとき)
  • _RELEASE … リリースモードでコンパイルされている(MetaEditor 上で F7 でコンパイルしたとき)

次のスクリプトを実行すると、スクリプト自身がどちらのモードでコンパイルされているかをログに出力します。

void OnStart() {
    #ifdef _DEBUG
        Print("Run in debug mode");
    #else
        Print("Run in release mode");
    #endif
}

上記はプリプロセッサで調べる例ですが、MQL5InfoInteger 関数を使って、実行時に動的にチェックすることもできます。

// MQL5 の場合
bool isDebug = MQL5InfoInteger(MQL5_DEBUGGING);

// MQL4 の場合
bool isDebug = IS_DEBUG_MODE;

関連記事

まくまく投資ノート
サイトマップまくへのメッセージ