2016-09-21 90 views
0

前提:我對Windows編程非常陌生。如何防止在Windows中執行自動打開控制檯?

到目前爲止,我編譯的每個小程序,在執行時(...雙擊GUI)自動打開一個控制檯,它會提示std輸出。

這裏是一個屏幕截圖,顯示的this example

enter image description here

正如你所看到的執行,通過該程序創建的窗口的後面有一個控制檯。

爲什麼會發生這種情況以及如何預防它?

+0

您創建了一個控制檯模式項目。誰的入口點是main(),而不是WinMain()。使用正確的項目模板入門,使用「Win32 Project」進入成功之路。你會得到一些自動生成的代碼,這些代碼已經做了你正在做的事情,如果你想自己寫,就刪除它。 –

回答

2

Windows程序有兩個子系統:Windows或控制檯。當您啓動一個控制檯程序時,會自動創建一個控制檯(如果它不存在)。由於控制檯是默認設置,因此在構建程序時必須設置適當的鏈接器選項/SUBSYSTEM:WINDOWS

這兩個子系統之間沒有根本的區別。 Windows程序可以創建一個控制檯,控制檯程序可以創建窗口,所以你最終會同時擁有一個窗口和一個控制檯。

有更多的子系統,但它們與您的問題無關。有關更多信息,請參見https://msdn.microsoft.com/en-us/library/fcc1zstk.aspx(還包含有關在Visual Studio中設置鏈接器選項的信息)

相關問題