関数が呼びだされない&文字が突然消える
Posted: 2009年8月06日(木) 22:37
またまた行き詰ってしまったので質問させていただきます。
1つ目は、debugでビルドするとうまく動くのに、releaseでビルドすると一部の関数が呼びだされなくなります。
--------------------------------------------------------------------------------------------------
f_statusは大域変数です。
title()はタイトル画面で、map()はマップ画面です。
マップでのメニューで「終了」を選択するとmap()関数は終了する設定なのですが、なぜかtitle()は呼びだされず、
map(0)関数が呼びだされ続けます。(ループ1回目だけはtitle()は呼び出されます)
どうしてこうなるのかわからず、大変困ってます。
2つ目は、プログラムの実行中に、突然文字が消えることがあります。
--------------------------------------------------------------------------------------------
ですが、たまに文字が全部消えてしまうんです。ウィンドウはなぜか消えません。
どなたか回答よろしくおねがいします。
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を使って文字を表示させてます。
ですが、たまに文字が全部消えてしまうんです。ウィンドウはなぜか消えません。
どなたか回答よろしくおねがいします。