1. 程式人生 > >vc++6.0中建立工程時選Win32 Application和Win32 console Application的區別

vc++6.0中建立工程時選Win32 Application和Win32 console Application的區別

我想好多朋友在剛使用vc++6.0建立工程時不知道是選Win32 Application或是選Win32 console Application,有的就選擇了 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初學者可能會常遇到如下連結錯誤:  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的入口函式為WinMain,Win32 Console Application的入口函式是main。

換句話說,如果你編寫傳統的C程式,必須建立Win32 Console程式,但VC裡面預設的是Win32 Application,於是上面提及的連結錯誤就經常出現了。而Win32 Application和Win32 Console的區別就在於VC裡連結引數不同。