2016-08-12 163 views
1

我是C編程新手,目前我正在開發一個簡單的Win32控制檯應用程序來幫助我學習。我在工作時這樣做,他們爲我提供了Visual Studio 2010.我們的工作計算機受到限制,因此我無法安裝其他軟件或進行需要管理員訪問的更改。VS2010 - 使用cmd.exe調試win32控制檯應用程序

在試圖調試我的程序時,我發現有幾個選項可用。下面的兩個都是我想用:

  1. 開始調試
  2. 不開始調試

當我拿起選項1,應用程序直接啓動(如,如果我雙擊了.exe文件)。但是,當我選擇選項2時,應用程序通過cmd.exe間接啓動。此外,在應用程序通常會終止的地方,會出現一行文字,顯示'按任意鍵繼續'。這將保持控制檯打開,直到我按另一個鍵。

有沒有辦法在Visual Studio中修改設置,使選項1的行爲與選項2相同但仍然允許調試?如果沒有,是否還有其他解決方法可以完成同樣的任務,並且可以使用單個鍵盤快捷鍵啓動?

+0

什麼是「直接」? –

+0

@EugeneSh。據我所知,似乎VS正在通過直接調用它來加載可執行文件,而不是使用Windows命令提示符(cmd.exe)來加載它。我很抱歉,如果我的術語有誤導性和/或不正確的,但我在應用程序開發方面的經驗很少。 –

+0

如果在您的程序退出之前按'任意鍵繼續'提示符是您所需的全部內容,那麼@ BenVoigt對我的答案的評論實際上是對您的問題的回答 – mvidelgauz

回答

1

不幸的是,我不知道任何「開箱即用」(請參閱​​下面的替代方法)以單鍵盤命令完成同樣的事情,但以下是我認爲可以幫助您的方法:

  1. 調用MessageBox_getch或別的東西添加到您的代碼在這一點暫停執行,直到用戶點擊一個按鈕或按使用第二個方法(「不調試」)
  2. 關鍵
  3. 啓動應用程序
  4. 當您在步驟1中看到消息框或用戶輸入提示時,請不要繼續
  5. 在Visual Studio菜單下的「Debug」調用「Attach to process ...」。
  6. 在當前正在運行的進程列表中查找您的應用程序。您可以通過消息框標題或用戶提示或通過進程ID來識別它。選擇該進程並單擊「附加」按鈕
  7. 在您將看到VS連接到該進程後,切換到應用程序(cmd窗口),然後單擊按鈕或按一個鍵繼續執行。從這一點你的應用程序在調試器下

運行如果你真的需要一個簡單的命令做這一切,我認爲你需要編寫自己的VS macro。如果你需要這種宏的幫助,很可能需要成爲一個不同的問題。

[編輯]

你在你的問題時說,你是VS2010,所以下面可能是不適合你的選擇,但以防萬一,我會在這裏吧:如果你是 使用VS2013或(2015)您可以使用 Child Process Debugging Power Toolanother link),這將允許您指定cmd $(TargetPath)作爲「命令」,然後使用第一個選項調試cmd連同其子進程,這將發生在您的進程(截圖來自VS2012,但在VS版本中存在相同的選項)

enter image description here

+0

謝謝您的信息。我測試了你的一步一步的方法,並且允許我在程序加載後連接調試器。但是,我希望找到一種解決方案,每次都不需要多個步驟並暫停程序。我會對VS宏進行一些研究。 –

+0

基於[這個問題]給出的答案(http://stackoverflow.com/questions/21762194/macros-dont-run-in-visual-studio-2010),VS宏不會是我的選擇。 –

+0

那麼如何超越宏到[VS extenstions](https://code.visualstudio.com/docs/extensions/overview)? – mvidelgauz

相關問題