はじめまして、C++を始めようと思いこのサイトを参考にプログラムを作成しています。
初めの方の例題で
#include "DxLib.h"
int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int)
{
ChangeWindowMode(TRUE) ;
DxLib_Init(); // DXライブラリ初期化処理
WaitKey(); // キー入力待ち
DxLib_End(); // DXライブラリ終了処理
return 0;
}
とあります。
通常ではこのプログラムを実行するとWaitKey();でひたすら何かキーが入力されるまで待ってくれるようですが何故か私の環境では待ってくれないのです。
実行するとウィンドウが一瞬だけ表示されキー入力を待たずウィンドウを閉じます。
【実行結果】
システムの情報を出力します
31: DXライブラリ Ver3.08e
47: 論理プロセッサの数 : 2
62: OS WindowsVista ( Build 6002 Service Pack 2 )
182: CPU動作速度:大体2.17GHz
194: MMX命令を使用します
204: SSE命令が使用可能です
214: SSE2命令が使用可能です
222: CPUベンダ:GenuineIntel
261: CPU名:Intel(R) Core(TM)2 Duo CPU E4500 @ 2.20GHz
269:COMの初期化... 成功しました
292:メモリ総量:2037.18MB 空きメモリ領域:493.64MB
493.64MB
367: ソフトの二重起動検査... 二重起動はされていませんでした
391:ウインドウクラスを登録します... 登録に成功しました
410:ウインドウモード起動用のウインドウを作成します
657:ウインドウの作成に成功しました
665:ウインドウを表示します
812:IMEを無効にしました
829:ウインドウスタイルをウインドウモード用に変更します... 完了
875:DirectInput関係初期化処理
883: DirectInput7 の取得中... 'sample.exe':
成功
1611: 引き続き初期化処理... 初期化成功
1639: ジョイパッドの初期化...
1666: ジョイパッドの初期化は正常に終了しました
1679: マウスデバイスの初期化... マウスデバイスの協調レベルの設定に失敗しました
スレッド 'DxLib::ThreadRunFunction' (0x3270) はコード -1 (0xffffffff) で終了しました。
スレッド 'Win32 スレッド' (0x3760) はコード -1 (0xffffffff) で終了しました。
スレッド 'Win32 スレッド' (0x349c) はコード -1 (0xffffffff) で終了しました。
スレッド 'Win32 スレッド' (0x2d38) はコード -1 (0xffffffff) で終了しました。
スレッド 'Win32 スレッド' (0x31a0) はコード -1 (0xffffffff) で終了しました。
スレッド 'Win32 スレッド' (0x8d2c) はコード -1 (0xffffffff) で終了しました。
スレッド 'Win32 スレッド' (0x2e24) はコード -1 (0xffffffff) で終了しました。
スレッド 'Win32 スレッド' (0x3798) はコード -1 (0xffffffff) で終了しました。
スレッド 'Win32 スレッド' (0x2264) はコード -1 (0xffffffff) で終了しました。
スレッド 'Win32 スレッド' (0xe0b0) はコード -1 (0xffffffff) で終了しました。
スレッド 'Win32 スレッド' (0x21cc) はコード -1 (0xffffffff) で終了しました。
スレッド 'Win32 スレッド' (0x3008) はコード -1 (0xffffffff) で終了しました。
スレッド 'Win32 スレッド' (0x3554) はコード -1 (0xffffffff) で終了しました。
スレッド 'Win32 スレッド' (0x31a8) はコード -1 (0xffffffff) で終了しました。
スレッド 'Win32 スレッド' (0x37a0) はコード -1 (0xffffffff) で終了しました。
スレッド 'Win32 スレッド' (0xc5f8) はコード -1 (0xffffffff) で終了しました。
スレッド 'Win32 スレッド' (0x3824) はコード -1 (0xffffffff) で終了しました。
スレッド 'Win32 スレッド' (0x3100) はコード -1 (0xffffffff) で終了しました。
スレッド 'Win32 スレッド' (0x35e4) はコード -1 (0xffffffff) で終了しました。
スレッド 'Win32 スレッド' (0xd4ac) はコード -1 (0xffffffff) で終了しました。
スレッド 'Win32 スレッド' (0x2700) はコード -1 (0xffffffff) で終了しました。
スレッド 'Win32 スレッド' (0x2c58) はコード -1 (0xffffffff) で終了しました。
スレッド 'Win32 スレッド' (0x2910) はコード -1 (0xffffffff) で終了しました。
スレッド 'Win32 スレッド' (0x3f98) はコード -1 (0xffffffff) で終了しました。
スレッド 'Win32 スレッド' (0x17ac) はコード -1 (0xffffffff) で終了しました。
スレッド 'Win32 スレッド' (0x3e4c) はコード -1 (0xffffffff) で終了しました。
スレッド 'Win32 スレッド' (0x3134) はコード -1 (0xffffffff) で終了しました。
スレッド 'Win32 スレッド' (0x22c4) はコード -1 (0xffffffff) で終了しました。
スレッド 'Win32 スレッド' (0x3118) はコード -1 (0xffffffff) で終了しました。
スレッド 'Win32 スレッド' (0xd834) はコード -1 (0xffffffff) で終了しました。
スレッド 'Win32 スレッド' (0x6e44) はコード -1 (0xffffffff) で終了しました。
スレッド 'Win32 スレッド' (0x2078) はコード -1 (0xffffffff) で終了しました。
プログラム '[8092] sample.exe: ネイティブ' はコード -1 (0xffffffff) で終了しました。
何か解ることがあればよろしくおねがいします。
WaitKey()が待ってくれない
Re: WaitKey()が待ってくれない
ちなみに
WaitKey()をCheckHitKey()に変えても、WindowModeを変えても、JoyStickを外しても、駄目でした。
設定は見直しましたがそれでもなかったようです。
WaitKey()をCheckHitKey()に変えても、WindowModeを変えても、JoyStickを外しても、駄目でした。
設定は見直しましたがそれでもなかったようです。
Re: WaitKey()が待ってくれない
DxLib_Initの内部でマウスディバイスの設定に失敗しています。
原因は不明です。
が、常駐ソフトなど他に起動していませんか?
メモリ容量に対して、空きメモリが少ないように感じました。
もしかしたら、起動している常駐ソフトが何らかの悪さをしているかもしれません。
再度リビルドしなおしてみてはいかがでしょう?
追記
それと、入力関係のディバイスのドライバを更新してください。
キーボードやマウスなど。
原因は不明です。
が、常駐ソフトなど他に起動していませんか?
メモリ容量に対して、空きメモリが少ないように感じました。
もしかしたら、起動している常駐ソフトが何らかの悪さをしているかもしれません。
再度リビルドしなおしてみてはいかがでしょう?
追記
それと、入力関係のディバイスのドライバを更新してください。
キーボードやマウスなど。
Re: WaitKey()が待ってくれない
赤鬼様、返信ありがとう御座います。
回答をヒントに調べてみるとどうやらElecomマウスはVisual C++と相性が良くないようですね。
一応、デバイスの更新やデバイスツールの終了などを試してみます。
ちなみに、赤鬼様はどちらの企業のマウスを使用していますか?
宜しければ参考までにお聞きしたいのですが。
回答をヒントに調べてみるとどうやらElecomマウスはVisual C++と相性が良くないようですね。
一応、デバイスの更新やデバイスツールの終了などを試してみます。
ちなみに、赤鬼様はどちらの企業のマウスを使用していますか?
宜しければ参考までにお聞きしたいのですが。
Re: WaitKey()が待ってくれない
さ、様!?せち さんが書きました:赤鬼様、返信ありがとう御座います。
回答をヒントに調べてみるとどうやらElecomマウスはVisual C++と相性が良くないようですね。
一応、デバイスの更新やデバイスツールの終了などを試してみます。
ちなみに、赤鬼様はどちらの企業のマウスを使用していますか?
宜しければ参考までにお聞きしたいのですが。
'さん'でいいです。
私もElecomのを使っていますよ。
型はM-FGURBKですが問題なく機能しています。
Re: WaitKey()が待ってくれない
>>赤鬼さん
そうでしたか。
もしかするとElecomマウス本体ではなくその付属ツールが影響を及ぼしているのかもしれません。
すみません、迅速な回答ありがとう御座います。
追伸
上記のようなことが起きた当時、インターネットブラウザやインターネット電話サービス、アンチウイルスソフトやファイアウォール等様々なソフトを起動させていたのでそれの影響もあるかもしれません。
そうでしたか。
もしかするとElecomマウス本体ではなくその付属ツールが影響を及ぼしているのかもしれません。
すみません、迅速な回答ありがとう御座います。
追伸
上記のようなことが起きた当時、インターネットブラウザやインターネット電話サービス、アンチウイルスソフトやファイアウォール等様々なソフトを起動させていたのでそれの影響もあるかもしれません。
Re: WaitKey()が待ってくれない
vistaは使ったことが無いのでよくわかりませんが。せち さんが書きました: 追伸
上記のようなことが起きた当時、インターネットブラウザやインターネット電話サービス、アンチウイルスソフトやファイアウォール等様々なソフトを起動させていたのでそれの影響もあるかもしれません。
ディバイスの取得までは成功しているみたいなので、もしかしたら権限の関係かもしれません。
programファイルとかOSの管理下の場所でアクセスしていませんか?
Re: WaitKey()が待ってくれない
>>赤鬼さん
いえ、OS管理下のドライブとは別のドライブで作業をしています。
Visual C++を管理者権限で起動しています。
他にも、Elecom製のマウス支援ソフトウェアも管理者権限で起動しています。
ですが、別のWindows7のPCでVisual C++を管理者権限で起動してみると問題なく動作をします。
考えられる原因が多量にありますね。
いえ、OS管理下のドライブとは別のドライブで作業をしています。
Visual C++を管理者権限で起動しています。
他にも、Elecom製のマウス支援ソフトウェアも管理者権限で起動しています。
ですが、別のWindows7のPCでVisual C++を管理者権限で起動してみると問題なく動作をします。
考えられる原因が多量にありますね。
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: WaitKey()が待ってくれない
マルチポストされていると思いますがフォーラムルールの違反となります。
「WaitKey()がひたすら待ってくれない」
http://hpcgi2.nifty.com/natupaji/bbs/pa ... ew&no=2794
フォーラムルールを確認の上で相互リンクを行なってください。 http://dixq.net/board/board.html
「WaitKey()がひたすら待ってくれない」
http://hpcgi2.nifty.com/natupaji/bbs/pa ... ew&no=2794
フォーラムルールを確認の上で相互リンクを行なってください。 http://dixq.net/board/board.html
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: WaitKey()が待ってくれない
回答をいただき有難う御座います。
お陰で無事解決することができました。
お詫び
マルチポストは大抵何処の掲示板でも大抵禁止であることを知らず複数の掲示板で同じ質問をしてしまったことをお詫び申し上げます。
同じ質問のリンク先ttp://hpcgi2.nifty.com/natupaji/bbs/patio.cgi?mode=view&no=2794
お陰で無事解決することができました。
お詫び
マルチポストは大抵何処の掲示板でも大抵禁止であることを知らず複数の掲示板で同じ質問をしてしまったことをお詫び申し上げます。
同じ質問のリンク先ttp://hpcgi2.nifty.com/natupaji/bbs/patio.cgi?mode=view&no=2794