C++中的Win32 Application和Win32 Console Application區別

剛剛在新建project的時候,選擇了 Win32 Application,編譯時出現下面的錯誤: 
 
很奇怪的說,一個很短的程序,不可能出錯的。後來才知道了是因爲Win32 Application和Win32 Console Application選項的問題。搜索到了下面的資料,轉載在這裏: 
                                                  
Win32 Application和Win32 Console Application 都是工作在32位Windows環境的程序。其中: 

(1)Win32 Application就是普通的常見的窗口應用程序,當然有的界面做得比較個性化,比如圓形的、不規則形狀的…它們都是所謂的GUI(Graphics User Interface圖形用戶接口),我們可以通過鼠標點擊來完成控制。Win32 Application是爲你開發windows應用程序所準備的,程序以WinMain()爲入口,#include<windows.h>,能夠使用win32 API函數。 
(2)而Win32 Console Application(win32控制檯應用程序)往往是像MS-DOS窗口(XP中叫命令提示符)的樣子出現,我們得用鍵盤輸入各種命令來使用它,它與純dos程序區別是:它是32位的;或者叫CUI(Character User Interface字符用戶接口)。console程序以main()爲入口,不能使用win32 API函數。 

很多VC初學者可能會常遇到如下鏈接錯誤: 
Java代碼  收藏代碼
  1. Linking... /subsystem:windows  
  2. LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol     WinMain @16  
  3. Debug/TestWin.exe : fatal error LNK1120: 1 unresolved externals  
  4. Error executing link.exe.  


解決方法是:將project-->settings-->link的project options裏的/subsystem:windows 後將其刪掉或者改成/subsystem:console。 
    因:Win32 Application的入口函數爲WinMain,Win32 Console Application的入口函數是main。換句話說,如果你編寫傳統的C程序,必須建立Win32 Console程序,但VC裏面默認的是Win32 Application,於是上面提及的鏈接錯誤就經常出現了。而Win32 Application和Win32 Console的區別就在於VC裏鏈接參數不同
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章