スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

VC++ * DXライブラリでのデバッグ

何番煎じかわからないけれど、書きます! fopen_s関数のこと調べなきゃでなかったし…ね。(VCのバージョンによる)

コンソール用の領域を確保、必要がなくなったら解放を行います。
DXライブラリの初期化と共に行うことをお勧めします。
FILE *dummy;
AllocConsole();
fopen_s(&dummy, "CONOUT$", "w", stdout); //コンソールに出力
//fopen_s(&dummy, "CONIN$", "r", stdin); //コンソールから入力
fclose(dummy);
FreeConsole();

これでstd::coutもしくはprintfを使うことでデバッグを行うことができます。
なお"DXLib.h"をインクルードしたファイルからならどこからでも出力できます


これ以外の方法としては、デバッグを集中したいブロック(メソッド)に
static FILE *fp;
fopen_s(&fp, "debug.txt", "a"); // debug.txtを追加書き込みモードで開く
fclose(fp);

を記述しておくということが出来ます。 staticしなくてもいいです。
fclose実行時にファイルに書き込まれます。
このファイルをデバッグ後読み取ってみるといいでしょう。

ただしテキストエディタで開いたままアプリケーションを実行すると、
排他制御によりエラーが送出されます。




例:
while(ScreenFlip()==0 && ProcessMessage()==0 && ClearDrawScreen()==0 && GetHitKeyStateAll(key)==0){
DrawCircle(x++, y++, 5, Color, TRUE);
printf("%d : %d\n", x, y);
}


例:
while(ScreenFlip()==0 && ProcessMessage()==0 && ClearDrawScreen()==0 && GetHitKeyStateAll(key)==0){
static FILE *fp;
fopen_s(&fp, "debug.txt", "a");
DrawCircle(x++, y++, 5, Color, TRUE);
printf("%d : %d\n", x, y);
fclose(fp);
}

スポンサーサイト

コメント

非公開コメント
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。