トップページ > 過去ログ > 記事閲覧
タスクバーのアイコンを連続でクリックすると
名前:タカトゥ 日時: 2011/08/14 19:04

ゲームの速度を安定させるために毎フレーム WaitTimer( 16 - (GetNowCount() - time) ); を実行しているのですが、このプログラムで タスクバーのアイコンを連続でクリックして最小化と最大化を瞬時に繰り返すと落ちてしまいます。 int WaitTimer( int WaitTime ) ; の実行中に行うと落ちてしまうようですが、私だけでしょうか

Page: 1 |

Re: タスクバーのアイコンを連続でクリックすると ( No.1 )
名前:タカトゥ 日時:2011/08/14 19:17

すみません、ただ int WaitTimer( int WaitTime ) ; を実行中にやっても起こりませんでした #include "DxLib.h" int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { ChangeWindowMode(TRUE); if( DxLib_Init() == -1 ) // DXライブラリ初期化処理 { return -1; // エラーが起きたら直ちに終了 } while( ScreenFlip()==0 && ProcessMessage()==0 && ClearDrawScreen()==0 ){ WaitTimer( 17 ); } DxLib_End() ; // DXライブラリ使用の終了処理 return 0 ; // ソフトの終了 } で起こります。(私の環境では)
Re: タスクバーのアイコンを連続でクリックすると ( No.2 )
名前:いっち 日時:2011/08/14 23:40

私の環境では再現しないようでした。 ご使用の環境とDXライブラリのバージョンを教えていただけますか? 私の環境は WinXP SP3, VS2008EE, Dxlib 3.05f です
Re: タスクバーのアイコンを連続でクリックすると ( No.3 )
名前:タカトゥ 日時:2011/08/15 12:48

私の環境は Win7 64bit SP1, VC++2010, Dxlib 3.05f です。 VC++2008でも起こりました。 とりあえず上のソースでタスクバーのアイコンを連打していると起こります。 ただ今試したところ上のソースで WaitTimer( 17 ); をコメントアウトしても起こりました。 しかしゲームを作っている方のソースでは WaitTimer( 16 - (GetNowCount() - time) ); をコメントアウトすると起こらなくなりますし いまいち原因がわかりません・・・
Re: タスクバーのアイコンを連続でクリックすると ( No.4 )
名前:クラスクラス 日時:2011/08/15 17:47

同じく私の環境では再現しないようでした。 環境は WinXP SP3, VS2008EE, Dxlib 3.05f いっちさんと同じですね^^ これではおこらない? ちなみにノートPCとディスクトップPC GF430 1G も問題なし
Re: タスクバーのアイコンを連続でクリックすると ( No.5 )
名前:管理人 日時:2011/08/21 04:59

私の環境でも試してみました どうやら Windows7 ( 調べていませんが可能性としては Vista も )でのみ発生するようです 原因は最小化されているときに ScreenFlip を行うと -1 が返ってくるので、OSの違いによる タイミングの関係で while( ScreenFlip()==0 が真となるか偽となるかでダブルクリックし続けて居て プログラムが終了してしまうかどうかが決まっていたようです 最小化されている際に ScreenFlip を行っても -1 を返さないようにすることで 終了してしまわないようにしましたので、よろしければお試しになってみてください m(_ _)m http://homepage2.nifty.com/natupaji/DxLib/DxLibVCTest.exe // VisualC++ 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibBCCTest.exe // BorlandC++ 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibGCCTest.exe // Gnu C++ 用 (中身を既存のライブラリのファイルに上書きして、BCCをお使いの 場合は『再構築』を、VCをお使いの場合は『リビルド』を、 Dev-C++をお使いの方は「Rebuild All(Ctrl+F11)」をして下さい)
Re: タスクバーのアイコンを連続でクリックすると ( No.6 )
名前:タカトゥ(解決) 日時:2011/08/21 17:54

強制終了は起こらなくなりました。 どうもありがとうございました。

Page: 1 |