DirectXのデバッグについて
DirectXで、フルスクリーン使用時にデバッグを実行すると ハングアップしてしまいます。 (^^;) でも、SetDisplayMode( 640, 480, 16 ); この関数の所までなら デバッグを起動することが出来ました。 それ以降の処理で、エラーが出た時( 例えば Blt時 ) HRESULT dx_err; BOOL Draw(void) { dx_err = lpBackBuffer->Blt(); if( dx_err != DD_OK ){ return FALSE; } return TRUE; } こういう感じにしておくと、かなり対処できると思います。 もっといい方法は、次の関数を用意します。 char err_mes[512]; BOOL b_err = FALSE; void RegError(char *err){ sprintf( err_mes, "%s\n", err ); b_err = TRUE; PostMessage( hWnd, WM_CLOSE ,0 ,0 ); } BOOL Draw(void) { dx_err = lpBackBuffer->Blt(); if( dx_err != DD_OK ){ RegError("Draw()関数のBltでエラーが発生しました"); return FALSE; } return TRUE; } WndProc( HWND hWnd, UINT message, ???, ???) { switch (message) { case WM_DESTROY: if( b_err ) MessageBox( NULL, err_mes, "エラー", MB_OK ); CleanUp(); // lpDDやBackBufferを解放 break; } } これだけすれば、フルスクリーンのデバッグも簡単になり しかも、ハングアップをかなり防げます。