當我們在Visual Studio下啓動應用程序時,是否可以(以及如何)禁用控制檯窗口的顯示?如何防止在Visual Studio下顯示控制檯窗口?
編輯:
一些精度:
我在這個項目中沒有圖形用戶界面系統的起點。 我第二次爲這個項目增加了QT gui。 目前,當我啓動我的申請,我有控制檯系統和QT的主窗口
我想禁用控制檯系統
當我們在Visual Studio下啓動應用程序時,是否可以(以及如何)禁用控制檯窗口的顯示?如何防止在Visual Studio下顯示控制檯窗口?
編輯:
一些精度:
我在這個項目中沒有圖形用戶界面系統的起點。 我第二次爲這個項目增加了QT gui。 目前,當我啓動我的申請,我有控制檯系統和QT的主窗口
我想禁用控制檯系統
你將不得不使用只是一個應用程序,而不是一個控制檯應用程序。要這樣做:
將子系統更改爲Windows。您可以在找到它:
Properties ---> Linker ---> System
與
int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow)
我在VS2010下我無法找到子系統/ Windows選項 – Guillaume07 2011-05-19 07:56:41
@ Guillaume07:更新了答案:) – 2011-05-19 08:02:07
對於未來的googlers:您不必更改子系統。如果沒有選擇子系統(默認爲控制檯項目),只需用'_tWinMain'代替'_tmain'就足夠了。 – Navin 2013-03-22 20:38:01
更換
int _tmain(int argc, _TCHAR* argv[])
如果它是一個Windows應用程序,然後是 - 你控制的UI。如果它是一個控制檯應用程序,那麼你會得到一個帶有標準輸入,標準輸出等的控制檯。如果你正在尋找一些沒有用戶界面的東西,那麼可能是你的Windows服務。
或者只是一個沒有指定'WS_VISIBLE'的標準Windows應用程序。沒有理由創建Windows服務只是爲了獲得沒有UI的應用程序。 – 2011-05-19 07:27:12
你不能(但見下文),這與Visual Studio沒有任何關係,但與如何區別控制檯和「非控制檯」應用程序。
控制檯應用程序在其可執行文件中設置了某種標記,以便Windows知道它是一個CLI,Windows將隨時打開一個控制檯並將其附加到此過程。
一個GUI應用程序並沒有這個標誌,因此Windows將不附加控制檯(以及從Windows cmd.exe shell中運行時,外殼也不會附着在這個應用程序無論是。)
你可以控制檯通過AllocConsole
和FreeConsole
Windows API函數從您的應用程序附加和分離,但是您真正想要做的事情可能是什麼Als describes in his answer。
有很多不同的方式來回答這個問題......哪一個是正確的取決於你想要完成什麼。你能編輯你的問題給我們更多的細節嗎? – 2011-05-19 07:25:54
啊,那麼很簡單。您需要將應用程序轉換爲標準的Windows應用程序,而不是控制檯應用程序。 [Als的回答](http://stackoverflow.com/questions/6055026/how-can-we-prevent-console-windows-from-being-displayed-under-visual-studio/6055094#6055094)你有覆蓋。 – 2011-05-19 07:53:23