我試着通過編譯C程序來試用Visual Studio 2010。在「DOS」命令窗口中顯示解決方案後,該窗口立即關閉。在Visual Studio 2008中,獲取消息的任何按鍵都可以繼續,按下一個按鍵將關閉命令提示符窗口。我如何在2010年設置這種行爲?程序結束後退出Visual Studio 2010
回答
經過一番Google搜索,我發現this解決方案不涉及修改您的代碼。它包含一個解決方法,涉及修改.vcxproj文件。
爲了從Microsoft Visual C++ 2010 Express中做到這一點(我假設它是Visual Studio 2010的相似),打開您的項目並導航到以下菜單:
Project->$YOURPROJECTNAME Properties...
->Configuration Properties
->Linker
->System->SubSystem
然後使用下拉菜單選擇控制檯(/ SUBSYSTEM:CONSOLE)並應用更改。
「沒有調試就開始」應該現在就做正確的事情。
很好。這工作非常好。我也給你一個投票。我正在使用Express版本。 – yCalleecharan 2010-07-06 15:07:39
非常感謝您在此處報告此錯誤。 – yCalleecharan 2010-07-06 15:18:14
這對我很好,謝謝。有沒有辦法自動將此解決方案應用於所有項目? – petric 2014-09-03 14:29:39
這是正常的。 「DOS」控制檯窗口附加到您的程序,並應該在您的程序完成時退出。如果您希望保持打開狀態,則需要將代碼添加到程序中以保持打開狀態。您只需添加一個打印語句,然後將語句輸入到程序的最後。
好的,謝謝...代碼接受來自鍵盤的輸入。 – yCalleecharan 2010-04-14 18:18:18
如果您在沒有調試器的情況下啓動應用程序(「無需調試即可啓動」),控制檯窗口將保持打開狀態,直到您按下某個鍵。
嗯......其實我做到了。我知道這也適用於Visual Studio 2008,這個「命令」就是我用來運行我的程序的。所以我對2010年的這種不同行爲感到有些驚訝。 – yCalleecharan 2010-04-14 18:29:01
我可以確認在2010年使用「無需調試就開始」不會在程序退出後保持控制檯窗口打開。 – yCalleecharan 2010-04-14 18:40:36
現在,這很奇怪。我的Visual Studio沒有相同的行爲... – 2010-04-14 19:27:44
您可以添加此功能,並調用它直接從主()返回前:在了Bjarne Stroustrup的網站
void keep_window_open()
{
// clear buffer
fflush(stdin);
printf("Please enter a character to exit\n");
char ch;
ch = getchar();
return;
}
我適應它從一個C++版本的工具頭文件: http://www.stroustrup.com/Programming/std_lib_facilities.h
非常感謝。爲了避免編譯錯誤,我必須在開始括號後面{在函數定義之後移動「char ch」行。我認爲「fflush(stdin)」這一行是C++代碼,並且在C中不起作用。 – yCalleecharan 2010-04-14 20:33:35
根據c FAQ: http://c-faq.com/stdio/stdinflush,您是對的。 html fflush僅爲輸出流定義。 該FAQ條目的鏈接討論瞭如何刷新輸入: http://c-faq.com/stdio/stdinflush2.html – Darel 2010-04-14 21:17:34
感謝您的鏈接。 – yCalleecharan 2010-04-14 21:32:44
FWIW,「無需調試即可開始」命令在VS2010中的工作方式與之前Visual Studio版本中的方式完全相同(也就是說,對於控制檯項目,當進程終止並按「任意鍵繼續」時,控制檯仍保持打開狀態。 「提示)。
那麼,究竟如何讓VS2010運行你的程序?如果您使用的是「Ctrl-F5」快捷鍵,您可以在「選項/環境/鍵盤」中確認Ctrl-F5綁定到Debug.StartWithoutDebugging
嗎?
此外,你可以嘗試運行你的程序使用菜單(「調試/開始無調試」)?
謝謝。首先編譯文件,然後構建它,然後使用Debug> start without debugging。按照您的說法,我已經分配了「Ctrl-F5」,但我得到了相同的行爲。我承認這很奇怪,因爲Visual Studio 2005可以正常工作。 – yCalleecharan 2010-04-14 21:31:02
@yCalleecharan:有趣 - 我不知道一個控制這個的設置。 – 2010-04-14 21:42:57
是的,很難相信這種奇怪的行爲。 – yCalleecharan 2010-04-15 06:57:41
發生這種情況的原因是因爲現在在VS 2010中可以默認創建一個空的通用C++項目,而無需通過該向導。這導致VS 2010沒有正確設置Console (/SUBSYSTEM:CONSOLE)
標誌,因此VS2010不知道它是一個控制檯應用程序,它將發送通常的「按任意鍵...」提示符。
如果您從新建項目菜單中創建控制檯應用程序項目類型,則不會出現此問題。
但是你可以通過Project/Settings來設置你自己和其他很多人的標誌,因爲上面的帖子已經正確回答了!
帶來 「開始沒有調試」 的調試菜單...
工具>>定製>>命令(TAB)>>菜單欄(下拉列表)>>調試(控制選項)>>添加命令(按鈕)>>調試(類別列表)>>無調試開始
使用「無調試開始」將允許VS2010在退出前顯示「按任意鍵繼續」短語。
- 1. 如何防止Visual Studio 2010中的線程結束通知?
- 2. 如何停止任務運行終端程序在Visual Studio代碼結束後自動退出?
- 3. Visual Studio 2010 Pro,在應用程序關閉時不會結束調試模式
- 4. 進程結束等待退出
- 5. Visual Studio 2010 - 調試輸出
- 6. 程序結束時出現循環問題,無法退出
- 7. 應用程序圖標Visual Studio 2010 C++
- 8. Visual Studio 2010 ReportViewer程序集引用
- 9. 「嵌套」Visual Studio 2010 Web應用程序
- 10. Visual Studio 2010修補程序[修復]
- 11. Visual Studio 2010 Web應用程序部署
- 12. Visual Studio 2010 Shell程序包安裝
- 13. Visual Studio 2010的安裝程序
- 14. 退出或程序結束時執行函數
- 15. 爲什麼visual studio在應用程序退出時退出調試器?
- 16. Visual Basic程序退出按鈕
- 17. 退出循環結束
- 18. 當調試x64應用程序時,Visual Studio 2010會凍結
- 19. 爲Visual Studio 2010的編程
- 20. Visual Studio 2010 Ultimate Profiler教程?
- 21. Apple Watch程序以退出碼結束:0
- 22. 應用程序不會結束VideoStreams並退出
- 23. 始終應用程序Java結束與「退出143」Ubuntu
- 24. 退出應用程序後退按鍵
- 25. zipalign.exe''以非零退出值結束
- 26. WebsiteSpark&Visual Studio 2010
- 27. Visual Studio 2010 - Datagridview
- 28. 在Visual Studio 2010
- 29. Microsoft visual studio 2010
- 30. 爲Visual Studio 2010
VS2010沒有什麼不同,在程序結束時按Ctrl + F5調用「按任意鍵」提示。 – 2010-04-14 18:35:11
是的,我知道這個「沒有調試就開始」的快捷方式,但在我的情況下,控制檯窗口立即被解散。這很奇怪。 – yCalleecharan 2010-04-14 18:41:54