1つ目は、debugでビルドするとうまく動くのに、releaseでビルドすると一部の関数が呼びだされなくなります。
--------------------------------------------------------------------------------------------------
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){
if( ChangeWindowMode(TRUE) != DX_CHANGESCREEN_OK || DxLib_Init() == -1 || SetMainWindowText( "RPG" ) == -1 ) return -1; //ウィンドウ化と初期化処理
while(f_status != 2){
title();
if( f_status == 0 ){
map(0);
}
if( f_status == 1 ){
map(1);
}
}
DxLib_End();
return 0;
}
-----------------------------------------------------------------------------------------------f_statusは大域変数です。
title()はタイトル画面で、map()はマップ画面です。
マップでのメニューで「終了」を選択するとmap()関数は終了する設定なのですが、なぜかtitle()は呼びだされず、
map(0)関数が呼びだされ続けます。(ループ1回目だけはtitle()は呼び出されます)
どうしてこうなるのかわからず、大変困ってます。
2つ目は、プログラムの実行中に、突然文字が消えることがあります。
--------------------------------------------------------------------------------------------
void window(int x1,int y1,int x2,int y2){
DrawBox(x1,y1,x2,y2,GetColor(50,50,50),TRUE);
DrawBox(x1,y1,x2,y2,GetColor(0,0,0),FALSE);
DrawBox(x1+1,y1+1,x2-1,y2-1,GetColor(255,255,255),FALSE);
}
void message(char *text){
int Key[256];
int font4=CreateFontToHandle("HGS明朝B",20,5,DX_FONTTYPE_ANTIALIASING_EDGE);
SetDrawScreen( DX_SCREEN_BACK );
while(!ProcessMessage() && GetHitKeyStateAll_2(Key)==0 && Key[ KEY_INPUT_Z ]!=1){
window(0,448,640,480);
DrawFormatStringToHandle(4,454,GetColor(255,255,255),font4,"%s",text);
ScreenFlip();
}
}
文字の描写は、まずDrawBoxでメッセージウィンドウをつくり、そこにDrawStringToHandleとDrawFormatStringToHandleを使って文字を表示させてます。ですが、たまに文字が全部消えてしまうんです。ウィンドウはなぜか消えません。
どなたか回答よろしくおねがいします。