タイムマシーンがあったら、過去と未来どちらに行く?

VisualStudio2017でコンソールアプリを作成し、実行すると
1回目は上手く動くのですが、ソースプログラムを変更し、再度ビルドすると、
exeファイルを開くことができない(誰かがexeファイルを捕まえていて書き込めない)旨のメッセージが出力されてしまいます。タスクマネージャーで見ても、exeファイルは動いていません。
エクスプローラでDebugフォルダを削除(exeファイルを削除)すれば、正常に動作します。

開発環境は以下の通りです。
Windows10 Pro 64ビット
VisualStudio2017

新規プロジェクトでC++を選択、空のプロジェクトから プロジェクトを作成
以下のプログラムを入力
#include <stdio.h>
int main(){
printf("aaa");
getchar();
return 0;
}

1回目のビルドは上手く動く
黒い画面を閉じた後(実行を終了した後)

printf("aaa"); を printf("bbb");
に変更後ビルド

ここで、exeファイルが開けないというエラーが表示される

ちなみに、プロジェクト→プロパティ→リンカー→システムから
サブシステムをコンソールにすれば、getcharがなくても
実行結果を表示する画面が閉じないはずですが、
上記エラーが出る場合は、この設定をしても 実行結果表示後、一瞬で画面がとじてしまいます。

A 回答 (2件)

以前、同じ状況になった事があります。


余計そうなサービスを片っ端から止めてたら、そんな事になってたような。
詳細は失念。

そういうメンテ、ゴミ取りとかやりますか?

普通に考えると、ウィルス対策ソフトなんかが.exeを掴んでて削除、上書きできないとかって気がしますが、
「サービス動かしてないとダメなのかよ!?わかるか!」
とかって思ったような記憶があるかも。


手元にVS2017は無くて再現できませんが、正確なエラーメッセージはどうでしたっけ?
確か、エラーメッセージでネット探して、そこそこ苦労して、対処方法のあるサイトを見つけて解決したハズ。
    • good
    • 1
この回答へのお礼

早速の回答ありがとうございます。実は質問した後、再現しなくなってしまい調査ができなくなっていました。
しかし、たった今、再現したので、結果報告だけ致します。
結局は、セキュリティソフトのカスペルスキーがexeファイルをつかんでいました。
カスペルスキーを止めたら問題なく動作しました。
今後、カスペルスキーに問い合わせをしてみますが、1つ気になるのは、カスペルスキーを動かしていても上手くいくことが大半(今までもカスペルスキーを使っていて、この現象がでなかったので)であるということです。

ちなみにエラー番号はLNK1105 で 正確には exeファイルを閉じることができません でした。

お礼日時:2020/05/29 08:24

開発環境が同じですので試してみましたが、再現できず正しく動作しています。


エクスプローラーから.exeファイル実行、VisualStudio上でCtrl+F5による実行、どちらも正常です。

プロジェクトを保存する場所(違うドライブやフォルダ)を変えるとか、
セキュリティソフトの除外設定を行うとか…
    • good
    • 1
この回答へのお礼

早速の回答ありがとうございます。実は質問した後、再現しなくなってしまい調査ができなくなっていました。
しかし、たった今、再現したので、結果報告だけ致します。
結局は、セキュリティソフトのカスペルスキーがexeファイルをつかんでいました。
カスペルスキーを止めたら問題なく動作しました。
今後、カスペルスキーに問い合わせをしてみますが、1つ気になるのは、カスペルスキーを動かしていても上手くいくことが大半(今までもカスペルスキーを使っていて、この現象がでなかったので)であるということです。
ベストアンサーについては、申し訳ございません。先に回答いただいたneko_deuxさんにさせて頂きますが、iprjctkrrさんにも感謝しております。

お礼日時:2020/05/29 08:21

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報