win32应用程序和win32控制台应用程序
而win32控制臺應用程序只是在控制臺下運行的程序,類似以前dos的程序。
Win32 Application和Win32 Console Application 都是工作在32位Windows環境的程序。?
其中Win32 Application 就是普通的常見的窗口應用程序,當然有的界面做得比較個性化,比如圓形的、
不規則形狀的…… 它們都是所謂的GUI(Graphics User Interface圖形用戶接口),我們可以通過鼠標點
擊來完成控制。?
而Win32 Console Application(win32控制臺應用程序)往往是像MS-DOS窗口(XP中叫命令提示符)的樣子出現,我們得用鍵盤輸入各種命令來使用它; 或者叫CUI(Character User Interface字符用戶接口)。
知道這些,但是有時候還是不太明白為什么有些程序在win32 Application中不能聯接,但移到win32 Console Application,卻可以運行?有待解決~
大概是入口不一樣。如Windows程序的入口是winmain函數,而控制臺程序入口是main函數。
其中Win32 Application?
就是普通的常見的窗口應用程序,當然有的界面做得比較個性化,比如圓形的、不規則形狀的……?
它們都是所謂的GUI(Graphics User Interface圖形用戶接口),我們可以通過鼠標點擊來完成控制。?
Win32 Console Application只能運行命令行程序
Win32 Application是基于消息響應機制的,可以運行圖形化的C++程序
對于這兩種程序VC里面有專門的設置對應
打開project-setting,c/c++選項卡中Category選General,下面就會有Preprocessor definetions一項,里面有_WINDOWS或者_CONSOLE。然后再看Link選項卡,Category同樣選General,在下面的Project Options里就會有/subsystem:windows或者/subsystem:console。
運行Win32 Console Application一定要把這兩個地方改成console,不然編譯出錯。
同理Win32 Application要把兩個地方改成windows。
很多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里鏈接參數不同。
有人問如何才能使Console ? ?Application運行完全后自動關閉其窗口。
MS-Dos窗口只有在Debug時才會出現,編譯之后,直接運行編譯文件,關閉文件時窗口會自動關閉。
總結
以上是生活随笔為你收集整理的win32应用程序和win32控制台应用程序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Nacos安装讲解教程
- 下一篇: 寻找NOD32升级服务器不求人