2011-05-19 181 views
2

當我們在Visual Studio下啓動應用程序時,是否可以(以及如何)禁用控制檯窗口的顯示?如何防止在Visual Studio下顯示控制檯窗口?

編輯:

一些精度:

我在這個項目中沒有圖形用戶界面系統的起點。 我第二次爲這個項目增加了QT gui。 目前,當我啓動我的申請,我有控制檯系統和QT的主窗口

我想禁用控制檯系統

+0

有很多不同的方式來回答這個問題......哪一個是正確的取決於你想要完成什麼。你能編輯你的問題給我們更多的細節嗎? – 2011-05-19 07:25:54

+0

啊,那麼很簡單。您需要將應用程序轉換爲標準的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

回答

5

你將不得不使用只是一個應用程序,而不是一個控制檯應用程序。要這樣做:

將子系統更改爲Windows。您可以在找到它:

Properties ---> Linker ---> System 

int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow) 
+0

我在VS2010下我無法找到子系統/ Windows選項 – Guillaume07 2011-05-19 07:56:41

+0

@ Guillaume07:更新了答案:) – 2011-05-19 08:02:07

+0

對於未來的googlers:您不必更改子系統。如果沒有選擇子系統(默認爲控制檯項目),只需用'_tWinMain'代替'_tmain'就足夠了。 – Navin 2013-03-22 20:38:01

0

更換

int _tmain(int argc, _TCHAR* argv[]) 

如果它是一個Windows應用程序,然後是 - 你控制的UI。如果它是一個控制檯應用程序,那麼你會得到一個帶有標準輸入,標準輸出等的控制檯。如果你正在尋找一些沒有用戶界面的東西,那麼可能是你的Windows服務。

+0

或者只是一個沒有指定'WS_VISIBLE'的標準Windows應用程序。沒有理由創建Windows服務只是爲了獲得沒有UI的應用程序。 – 2011-05-19 07:27:12

2

你不能(但見下文),這與Visual Studio沒有任何關係,但與如何區別控制檯和「非控制檯」應用程序。

控制檯應用程序在其可執行文件中設置了某種標記,以便Windows知道它是一個CLI,Windows將隨時打開一個控制檯並將其附加到此過程。

一個GUI應用程序並沒有這個標誌,因此Windows將不附加控制檯(以及從Windows cmd.exe shell中運行時,外殼也不會附着在這個應用程序無論是。)

可以控制檯通過AllocConsoleFreeConsole Windows API函數從您的應用程序附加和分離,但是您真正想要做的事情可能是什麼Als describes in his answer

相關問題