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
強制終了は起こらなくなりました。
どうもありがとうございました。
|