標籤:
剛學習OpenGL,繪製圖形的時候,如果不進行設定,啟動並執行時候會先出現黑視窗再出現Windows視窗。
其實要去除控制台視窗非常簡單,只需要修改工程設定,把子系統改成Windows,程式的進入點改成mainCRTStartup。
下面我先把幾中解決辦法列舉出來,再解釋下我的理解。
方法一:在程式中加入一句#pragma comment(linker, “/subsystem:\”windows\” /entry:\”mainCRTStartup\””),建議加在include的後面。
方法二:修改工程設定。
對於vc6,地方在Project->setting->Link->Project Options。
點開後的介面,
在右下角的Project Options裡面找到/subsytem:,並把其後面其後面的參數改成為windows,然後再找到/entry:,把其後面的值改成”mainCRTStartup”,如果找不到就添加,最後的效果是/subsystem:windows /entry:”mainCRTStartup”。
對於vs2008,地方在項目->屬性->連結器,
然後在左邊選中進階,,
在最上面的進入點輸入mainCRTStartup,再選中系統,,
在最上面的子系統選擇Windows即可了。
為什麼這樣設定下就可以了了。主要是因為Windows系統下有幾種子系統,一種是控制台,一種是視窗子系統,如果建立了控制台工程肯定是要建立控制檯子系統程式了,建立了Windows Application和MFC之類的工程則是視窗子系統了。不同的子系統會連結不同的主函數,控制台的會連結main,視窗的會連結WinMain,如果不匹配肯定會連結失敗。
現在我們使用OpenGL編程,又建立的是控制台工程,如果不進行設定肯定會出現黑視窗的,所以我們把工程的子系統改成Windows,但是我們不想改主函數為WinMain了,因為這樣會很麻煩,所以我們再把程式入口改成mainCRTStartup。同樣如果是win32 App工程下,我們可以把子系統改成控制台,再設定程式入口為WinMainCRTStartup,應該就會得到相反的效果了。
OpenGL學習筆記:Console工程下如何不顯示控制台黑視窗只顯示Windows視窗