Win32 Application和Win32 Console Application 都是工作在32位Windows環(huán)境的程序。其中:
(1)Win32 Application就是普通的常見的窗口應(yīng)用程序,當(dāng)然有的界面做得比較個(gè)性化,比如圓形的、不規(guī)則形狀的…它們都是所謂的GUI(Graphics User Interface圖形用戶接口),我們可以通過鼠標(biāo)點(diǎn)擊來完成控制。Win32 Application是為你開發(fā)windows應(yīng)用程序所準(zhǔn)備的,程序以WinMain()為入口,#include<windows.h>,能夠使用win32 API函數(shù)。
(2)而Win32 Console Application(win32控制臺應(yīng)用程序)往往是像MS-DOS窗口(XP中叫命令提示符)的樣子出現(xiàn),我們得用鍵盤輸入各種命令來使用它,它與純dos程序區(qū)別是:它是32位的;或者叫CUI(Character User Interface字符用戶接口)。console程序以main()為入口,不能使用win32 API函數(shù)。
很多VC初學(xué)者可能會常遇到如下鏈接錯(cuò)誤:
Linking... /subsystem:windows
LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol WinMain @16
Debug/TestWin.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
解決方法是:將project-->settings-->link的project options里的/subsystem:windows 后將其刪掉或者改成/subsystem:console。
原因:Win32 Application的入口函數(shù)為WinMain,Win32 Console Application的入口函數(shù)是main。
換句話說,如果你編寫傳統(tǒng)的C程序,必須建立Win32 Console程序,但VC里面默認(rèn)的是Win32 Application,于是上面提及的鏈接錯(cuò)誤就經(jīng)常出現(xiàn)了。而Win32 Application和Win32 Console的區(qū)別就在于VC里鏈接參數(shù)不同。