#include "DxLib.h"
int test()
{
ClearDrawScreen();
SetDrawScreen( DX_SCREEN_BACK );
while( (ProcessMessage() == 0) && (CheckHitKey( KEY_INPUT_ESCAPE ) == 0) ){
ClearDrawScreen();
if( (CheckHitKey( KEY_INPUT_Z ) != 0) ){
if( IDYES == MessageBox(NULL, "終了しますか?", "終了確認", MB_YESNO | MB_ICONQUESTION) ){
break;
}
}
DrawPixel( 320, 240, GetColor(255,255,255) );
ScreenFlip();
}
return 0;
}
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow )
{
if( DxLib_Init() == -1 ){
return -1;
}
else{
test();
}
DxLib_End();
return 0;
}
test.exeの 0x4b686407でハンドルされていない例外が発生しました:0xC0000005:
場所 0x4b686407 を読み込み中にアクセス違反が発生しました。
フルスクリーンモード時にてMessageBox()関数を呼び出しますと上記のメッセージが表示され停止するという状況になりました。
ウインドウモード上では問題なく動作し、MessageBox()の各引数の変更、SetUseGDIFlag()の使用や
必要最小限にソースを削るなど行いましたが同じ結果となりました。
過去ログにありました解決策の一つとして自前で作り回避する方法もありますが、便利な関数の一つである事と、
自分のソースの書き方に問題があるのでは?という事も含め質問させていただきたいと思います。
それではよろしくお願いいたします。
環境
Windows XP
VC++ 2008 Express Edition