Visual Studio 2010 Express タイムアウトについて

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
02giri
記事: 22
登録日時: 11年前

Visual Studio 2010 Express タイムアウトについて

#1

投稿記事 by 02giri » 11年前

初めまして。02giri と申します。
こちらのサイトは初めて利用させていただきますので、ルールは確認いたしましたが、書式に不備があったら申し訳ございません。


さて、初歩的なことで大変恐縮なのですが、こちらの過去ログおよび各種サイトを検索しても対処法が見つかりませんでしたので、
件名の内容につきまして質問させていただきます。

私は現在Visual Studio C++ 2010 Express を使用して三目並べ(●×ゲーム)を制作しております。
プログラム自体には何の問題もなく実行することができたのですが、
「デバッグなしで開始」および「デバッグして開始」のどちらを実行しても、
プログラムのタイムアウトが発生してしまい、困っております。

具体的には、プログラムの開始から約8秒が経過すると、プログラムの処理中(cin >> でユーザーの入力待ちなど)であるにもかかわらず
「続行するには何かキーを押してください...」が表示されてしまうのです。
そして、この三目並べのプログラム以外のプログラムでも同様の問題が発生することがわかりました。

おそらくVisual Studio の設定をいじればこのタイムアウトまでの秒数を変更できるのではないかと思うのですが、
どなたかご存知の方がいらっしゃいましたら、ご教授いただければ幸いです。
(初めはカウントダウンを行なってループ文を作成すればよいのではないかと考えたのですが、
ループ文の最中でも同様の問題が起きてしまったため、八方ふさがりの状態です。)

なお、OSはWindows 7を利用しております。
また、Visual Studioの設定はほぼ初期設定のままです。
(以前ほかのサイト様を拝見し、すべてのメニューを表示するように「上級者用メニューを表示」というような変更だけ
加えた記憶があります)


今回の件にはあまり関係がないかもしれませんが、プログラムの知識につきましては、
初歩的な参考書一冊分程度の知識と思っていただければ間違いないかと思います。


おそらくとても初歩的な内容で、わざわざトピックを立てることが申し訳ないほどなのですが、
よろしくお願いいたします。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: Visual Studio 2010 Express タイムアウトについて

#2

投稿記事 by softya(ソフト屋) » 11年前

cin >> と書かれているのでコンソールアプリケーションっぽいのではありますが、その場合はタイムアウトすることは考えられません。
「続行するには何かキーを押してください...」と出る所もコンソールアプリケーションっぽいのですが、こう出るとすれば自分で終了している可能性が一番高いと思います。
今回の場合は、ソースコードを見せていただくのが一番かと思いますね。
codeタグのご利用お願いします。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

02giri
記事: 22
登録日時: 11年前

Re: Visual Studio 2010 Express タイムアウトについて

#3

投稿記事 by 02giri » 11年前

>>softya様

返信ありがとうございます。説明不足ですみません。
まさにコンソールアプリケーションで、プログラムを作成しています。

ソースコードを貼らせていただきますが、三目並べの方は500行程度とあまりに長いので、
同様の問題が発生したカウントダウンのプログラムのコードを貼らせていただきます。

コード:

#include <iostream>
#include <ctime>
using namespace std;


time_t timer1;
double s, mem=0;

int main()
{
	time(&timer1);

	while((s = difftime(time(NULL), timer1))<15) {
		if(mem != s)
			cout << "残り" << 15-(int)s << "秒" << endl;
	}
	mem = s;

	cout << "制限時間オーバー" <<  endl;

	return 0;
}

こちらを実行すると残り時間がカウントダウンされていくのですが、
残り7秒のところで、「続行するには何かキーを押してください」が表示されてしまいます。
while文を抜ける条件は「15秒が経過したら」と表現できているとは思うのですが…。
すみませんが、アドバイスよろしくお願いします。

アバター
usao
記事: 1887
登録日時: 11年前

Re: Visual Studio 2010 Express タイムアウトについて

#4

投稿記事 by usao » 11年前

コード的には途中で終了することはなさそう→Win7+VS2012だけど,そのような問題が発生しないことを一応確認.
何の設定だろう…?

non
記事: 1097
登録日時: 13年前

Re: Visual Studio 2010 Express タイムアウトについて

#5

投稿記事 by non » 11年前

添付されたプログラム 2008Express Edition と C++2010 Professional で行いましたが、途中で止まることはありませんでした。

とりあえず、whileを抜けた、 mem = s;の行をブレークポイントにして、デバッグ実行をし、
sの値が何になっているのか調べてください。正常なら15.000・・・ です。
non

02giri
記事: 22
登録日時: 11年前

Re: Visual Studio 2010 Express タイムアウトについて

#6

投稿記事 by 02giri » 11年前

>> usao様
コメントありがとうございます。

そうですか…。ネットで探しても同じ問題が起きている方がいらっしゃらなかったので、
やはりどこかの設定をいじってしまったのでしょうか…。

ソースコード自体には問題なさそうとのことでしたので、
もう少し設定を見直してみます!
添付ファイル
timeout_error.png
このような状態です。。。
timeout_error.png (54.04 KiB) 閲覧数: 10253 回

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: Visual Studio 2010 Express タイムアウトについて

#7

投稿記事 by softya(ソフト屋) » 11年前

Sleep等が入っていないので、OSが余りのcoutの多さに表示遅延している可能性があります。

「Sleep 関数」
http://msdn.microsoft.com/ja-jp/library/cc429358.aspx
windows.hをインクルードしてSleep(50);ぐらいをループに入れてみてください。

【補足】
書いておいてから、そんなこと無いかぁ。と反省。
exeファイルをzip添付してもらった方が良いかもしれません。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

02giri
記事: 22
登録日時: 11年前

Re: Visual Studio 2010 Express タイムアウトについて

#8

投稿記事 by 02giri » 11年前

>> non様
コメントありがとうございます。

ブレークポイントをご指摘いただいた行に設定し、その直前の行にcout << s << endl; を追加して改めてデバッグ実行いたしましたが
while文を抜ける前に問題が発生してしまうためか、うまくsの値を調べることができませんでした。
(デバッグ実行しても自動関数や呼び出し履歴は表示されず、出力内容のみが表示されています)

実行後に表示されている出力内容をコピーしたものが下記です。

'countdown.exe': 'C:\Users\ユーザー名\Documents\Visual Studio 2010\Projects\countdown\Debug\countdown.exe' を読み込みました。シンボルが読み込まれました。
'countdown.exe': 'C:\Windows\SysWOW64\ntdll.dll' を読み込みました。Cannot find or open the PDB file
'countdown.exe': 'C:\Windows\SysWOW64\kernel32.dll' を読み込みました。Cannot find or open the PDB file
'countdown.exe': 'C:\Windows\SysWOW64\KernelBase.dll' を読み込みました。Cannot find or open the PDB file
'countdown.exe': 'C:\Program Files\AVAST Software\Avast\snxhk.dll' を読み込みました。Cannot find or open the PDB file
'countdown.exe': 'C:\Windows\SysWOW64\msvcp100d.dll' を読み込みました。シンボルが読み込まれました。
'countdown.exe': 'C:\Windows\SysWOW64\msvcr100d.dll' を読み込みました。シンボルが読み込まれました。
'countdown.exe': 'C:\Windows\SysWOW64\user32.dll' を読み込みました。Cannot find or open the PDB file
'countdown.exe': 'C:\Windows\SysWOW64\gdi32.dll' を読み込みました。Cannot find or open the PDB file
'countdown.exe': 'C:\Windows\SysWOW64\lpk.dll' を読み込みました。Cannot find or open the PDB file
'countdown.exe': 'C:\Windows\SysWOW64\usp10.dll' を読み込みました。Cannot find or open the PDB file
'countdown.exe': 'C:\Windows\SysWOW64\msvcrt.dll' を読み込みました。Cannot find or open the PDB file
'countdown.exe': 'C:\Windows\SysWOW64\advapi32.dll' を読み込みました。Cannot find or open the PDB file
'countdown.exe': 'C:\Windows\SysWOW64\sechost.dll' を読み込みました。Cannot find or open the PDB file
'countdown.exe': 'C:\Windows\SysWOW64\rpcrt4.dll' を読み込みました。Cannot find or open the PDB file
'countdown.exe': 'C:\Windows\SysWOW64\sspicli.dll' を読み込みました。Cannot find or open the PDB file
'countdown.exe': 'C:\Windows\SysWOW64\cryptbase.dll' を読み込みました。Cannot find or open the PDB file
'countdown.exe': 'C:\Windows\SysWOW64\imm32.dll' を読み込みました。Cannot find or open the PDB file
'countdown.exe': 'C:\Windows\SysWOW64\msctf.dll' を読み込みました。Cannot find or open the PDB file
'countdown.exe': 'C:\Windows\SysWOW64\dwmapi.dll' を読み込みました。Cannot find or open the PDB file
スレッド 'Win32 スレッド' (0x2a50) はコード 0 (0x0) で終了しました。
プログラム '[14912] countdown.exe: ネイティブ' はコード 0 (0x0) で終了しました。

ウイルス対策にavastを使用していることが関係している…なんてことはないですよね。。。

とりあえず設定を見直し、それでだめなら一度アンインストール&再インストールして様子を見てみようと思います。
また改めて報告させていただきます!

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: Visual Studio 2010 Express タイムアウトについて

#9

投稿記事 by softya(ソフト屋) » 11年前

avastは色々問題を引き起こしている様なので、開発者には向いていないかもしれません。
「最小のコードでもセキュリティソフトに引っかかる • C言語交流フォーラム ~ mixC++ ~」
http://dixq.net/forum/viewtopic.php?f=3&t=13145
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

02giri
記事: 22
登録日時: 11年前

Re: Visual Studio 2010 Express タイムアウトについて

#10

投稿記事 by 02giri » 11年前

>> softya様

いつもありがとうございます。
アドバイスをいただいた通り、ループの中にSleep(50);を組みこんだところ、
coutの実行回数が減り、スムーズに動作することを確認しました!(画像ファイルを添付いたしました)
ただ、やはり残り8秒の辺りで強制的に中断してしまうようです。

avastが原因かもしれないとのことなので、とりあえずavastも動作をオフにして試してみようと思います。

一応Sleep(50);を組み込んだファイル(.zip)を添付させていただきます!
もう少し原因を探ってみますので、進展がありましたらまた報告させていただきます。
添付ファイル
timeout_error2.png
Sleep(50;)を組み込んで実行した画像です
timeout_error2.png (53.14 KiB) 閲覧数: 10232 回
countdown.zip
Sleep(50);を組み込んだものです
(10.44 KiB) ダウンロード数: 98 回

02giri
記事: 22
登録日時: 11年前

お騒がせしてすみません。無事に解決いたしました!

#11

投稿記事 by 02giri » 11年前

softya様のおっしゃる通り、avastをオフにして実行したところ、無事に動作しました!(画像ファイル)

アドバイスをいただいた softya様、non様、 usao様 本当にありがとうございました。
まさかウイルス対策ソフトが原因とは思いもしませんでしたので、本当に助かりました。

開発用のPCなのでウイルス対策はフリーソフトで十分と思っておりましたが、
これからはおとなしくウイルスバスター先生のお世話になろうと思います。

改めまして、本当にありがとうございました!
添付ファイル
timeout_error3.png
無事に動作いたしました!
timeout_error3.png (45.54 KiB) 閲覧数: 10224 回

アバター
みけCAT
記事: 6734
登録日時: 13年前
住所: 千葉県
連絡を取る:

Re: Visual Studio 2010 Express タイムアウトについて

#12

投稿記事 by みけCAT » 11年前

ごめんなさい。
ウイルスバスターはやめたほうがいいらしいです。
http://www.inasoft.org/webhelp/sdfr4/HLP000180.html
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: Visual Studio 2010 Express タイムアウトについて

#13

投稿記事 by softya(ソフト屋) » 11年前

カスペルスキーは、非力なCPUなら使いものにならない場合がありますね。
ノートンも誤検出すると聞いたことがあります。
と言うことでアンチウィルスソフトは選ぶのが大変なのです。

【補足】 aviraも不幸な報告有り。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

閉鎖

“C言語何でも質問掲示板” へ戻る