ページ 11

プログラム実行直後の入力機器について

Posted: 2013年3月10日(日) 16:07
by derok

コード:

#include "DxLib.h"

int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int){
        ChangeWindowMode(TRUE),DxLib_Init(),SetDrawScreen( DX_SCREEN_BACK );
        while( ScreenFlip()==0 && ProcessMessage()==0 && ClearDrawScreen()==0 ){
		printfDx("%d",CheckHitKeyAll() );

        }

        DxLib_End();
        return 0;
}
というプログラムをexeから実行したとき、
-1-10000000000・・・・・・
と画面に表示されます。
また

コード:

#include "DxLib.h"

int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int){
        ChangeWindowMode(TRUE),DxLib_Init(),SetDrawScreen( DX_SCREEN_BACK );
        while( ScreenFlip()==0 && ProcessMessage()==0 && ClearDrawScreen()==0 ){
			printfDx("%d",GetMouseInput() & MOUSE_INPUT_LEFT );

        }

        DxLib_End();
        return 0;
}
をexeから実行すると、
11000000000・・・・
と表示されます。

これはつまり、開始2フレームはまともに動かないということなんでしょうか?
またそうならば、なんでこうなるのでしょうか?

Re: プログラム実行直後の入力機器について

Posted: 2013年3月10日(日) 16:21
by softya(ソフト屋)
私の所では再現しません。上と下のコードで最初から0です。

Re: プログラム実行直後の入力機器について

Posted: 2013年3月10日(日) 16:27
by derok
説明不足だったかもしれません。
ビルドした直後に表示されるものではなく、
Debug(Release)フォルダの中にあるexeファイルを直接起動した場合こうなります。

Re: プログラム実行直後の入力機器について

Posted: 2013年3月10日(日) 16:31
by softya(ソフト屋)
derok さんが書きました:説明不足だったかもしれません。
ビルドした直後に表示されるものではなく、
Debug(Release)フォルダの中にあるexeファイルを直接起動した場合こうなります。
DXライブラリ Ver3.10aでWindows7 64bitですがDebug(Release)フォルダから直接起動しても変わりませんので環境依存性があると思います。
ウィルス対策ソフトなどが阻害している可能性もあります。

Re: プログラム実行直後の入力機器について

Posted: 2013年3月10日(日) 16:46
by derok
ウイルスソフトはavast!を使用していて、設定のグローバルな除外にプロジェクトファイルを設定しています。
この除外の際に2フレーム程の時間が掛かっているため、このようなことが起きているのでしょうか?
ちなみにwindows7 64bit,DXライブラリ3.10a,VisualC++2010です。

Re: プログラム実行直後の入力機器について

Posted: 2013年3月10日(日) 16:49
by softya(ソフト屋)
ウィルス対策ソフトを一時停止してみると分かると思いますがネットからは切断して試してみて下さい。

Re: プログラム実行直後の入力機器について

Posted: 2013年3月10日(日) 17:19
by derok
softya(ソフト屋) さんが書きました:ウィルス対策ソフトを一時停止してみると分かると思いますがネットからは切断して試してみて下さい。
試してみたところ普通に動きました。
原因が分かってよかったです。