はじめましてこんにちは。
タイトルの通り、WaitVSync についての報告です。
フルスクリーン時に Alt + Tab で画面を切り替えた際に、WaitVSync でアクセス違反が発生したようです。
・コンパイラからのエラー内容
DxLib.exe の 0x00335f0e でハンドルされていない例外が発生しました: 0xC0000005: 場所 0x00000000 を読み込み中にアクセス違反が発生しました
・ソース
int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR pCmdLine, int showCmd){
// 描画先を裏にする
SetDrawScreen( DX_SCREEN_BACK );
// 垂直同期を待たない
SetWaitVSyncFlag( FALSE );
// DXライブラリ初期化処理
if( DxLib_Init() == -1 ){
return -1; // エラーが起きたら直ちに終了
}
// ESC が押されるまでループします
while( ProcessMessage() != -1 && CheckHitKey( KEY_INPUT_ESCAPE ) == 0 ){
// 四角形を描画
DrawBox( 100, 100, 200, 200, GetColor( 255, 0, 0 ), TRUE );
// 垂直同期を待つ
WaitVSync( 0 );
// 画面を交換
ScreenFlip();
}
// DXライブラリ使用の終了処理
DxLib_End();
return 0;
}
WaitVSync の引数を 1 や 2 に変えても違反は発生しました。
また、1度では発生しないときもありますが、もう一度アクティブにして再度 Alt + Tab すると発生したりします。
これはバグなのでしょうか? 仕様なのでしょうか?
もし、仕様ならば回避する方法をお教えしていただけると幸いです