VC++でデバッグ出力してソースの特定行へ飛ぶ

VCでコンパイルエラーになると出力ウィンドウにメッセージが表示されて、そこをマウスでダブルクリックすると対応行へ飛ぶことができる。
これを自分でもやりたいときどうしたらいいのかと少し悩んだが、エラーメッセージの書式を同じにしたらできた。
OutputDebugString()で以下のような書式で出力すればよい。


ソースファイルパス(行番号) : メッセージ

つまり以下のような感じ。


#include <windows.h>
void myOutputDebugString(LPCTSTR format, ...)
{
    TCHAR errorMsg[1024];

    va_list vargs;
    va_start(vargs, format);
    wvsprintf(errorMsg, format, vargs);
    OutputDebugString(errorMsg);
    va_end(vargs);
}

#define JumpMessage(x) myOutputDebugString(_T("%s(%d) : %s\n"), _T(__FILE__) , __LINE__, (x))

int main(int argc, char *argv[]) {
   JumpMessage(_T("test"));
   return 0;
}

VC6とVC2008ではちゃんと動くことを確認した。デバッグにちょっと便利かも。

以上

コスミー について

昔(?)はゲーム作ってました。 今もなんか作ろうとしています。
カテゴリー: C++, Tips パーマリンク

コメントを残す

メールアドレスが公開されることはありません。