ページ 11

×ボタンで消すとプロセスが残る不具合

Posted: 2008年7月23日(水) 00:26
by ryo-w
はじめまして、ryo-wです。
こちらのホームページにはとてもお世話になっております。

Borlandを使ってゲームを作っているのですが、
実行したゲームを右端の×ボタンでプログラムを終了させようとすると、
ウィンドウが外見上消えてもプロセスがそのまま残ってしまい、
その度にタスクマネージャからプロセスを削除しなければならない不具合が発生しています。

メインループ内で×ボタンを押すとメインループからいつまでたっても抜けられず、プロセスが残ってしまうようです。
メインループからbreakで脱出してプログラムを終了すれば、プロセスは消去され問題はないのですが。。

OSはXPです。解決方法をご存知の方がいらっしゃいましたらご教授願います。

Re:×ボタンで消すとプロセスが残る不具合

Posted: 2008年7月23日(水) 00:33
by 管理人
×ボタンで消えないように設定すればどうでしょう?
ウィンドウスタイルを変更してボタンを表示しなくしたり。

Re:×ボタンで消すとプロセスが残る不具合

Posted: 2008年7月23日(水) 00:39
by 管理人
そういえばこれは非公開関数でした・・。

初期化する前に

SetWindowUserCloseEnableFlag(FALSE);

を呼べば×ボタンで消せなくなります。

SetWindowStyleMode(int);

関数を呼べばウィンドウスタイルが変更出来ます。

0,1,2,3・・・など数を変えて実行してみてどうなるか確認してみて下さい。
 

Re:×ボタンで消すとプロセスが残る不具合

Posted: 2008年7月23日(水) 02:34
by tk-xleader
Dxライブラリの終了関数を呼んでから、標準ライブラリのexitを呼ぶというのはどうでしょうか?
if(ProcessMessage()==-1){
      DxLib_End();
      exit(0);
}
のように。これだとWinMain以外の関数から終了できます。