Windows下用VC++進行界面開發(fā):SDK,MFC,WTL,Qt
關(guān)注微信公眾號 老盧私塾
GUI==圖形用戶界面
WINDOWS,LINUX開發(fā)界面有GTK
WINDOWS:
VC ,delphi,PowerBuilder,Visual Basic
真正的程序員用VC,聰明的程序員用DELPHI
VC 寫EXE,DLL(RING3)
1. WINDOWS SDK
SDK==API。
優(yōu)點:
不需要安裝Framework(dll)
體積小
此種開發(fā)方式深受殺毒、病毒、木馬喜歡。有用ASM調(diào)用SDK編寫GUI/服務(wù)的,
也有用VC 調(diào)用SDK編寫的
缺點:
沒有利用上面向?qū)ο蟮奶匦?,因為操作系統(tǒng)API都是面向過程的,平面化的管理方式,每個API都是平行的。不像C /JAVA那樣有類庫,類中再是API。
所以編寫起來比較困難,可以理解成用C語言編寫exe,dll
2. MFC
學VC都學MFC
優(yōu)點:
大量使用宏替換,而不是override、OO。優(yōu)點是在編譯前預處理,所以運行時不會再作多態(tài)處理,沒有虛函數(shù)表(你自己寫的C OO肯定是有虛函數(shù)表的),速度快。這就給了架構(gòu)師一種設(shè)計理念/思想:不一定非要用OO,可以用#宏。
缺點:
代碼一點都不優(yōu)雅,非常丑陋。
OO和你用過JAVA后的感覺,差太多了
前后端界面不分離,WEB前后分離
體積大
不同的VC 版本,編譯出來的MFC EXE,DLL需要安裝framework(DLL)。這也是為什么多用VC6來寫MFC的原因,因為VC6的DLL,WINDOWS不管哪個版本,基本都有,(98,XP,2K,VISTA,7,8,10)。VC20xx
從代碼優(yōu)雅度上,遠輸入delphi的vcl控件(組件不一定有界面,控件是指有界面的組件)
3. WTL
當年很多大廠(exe)都是用WTL
優(yōu)點:和SDK基本一樣的部署方式,即不需要安裝一堆的DLL framework。全WIN平臺運行。
特點:結(jié)合了SDK的輕部署,和MFC的控件機制。
缺點:控件比MFC的少,但是寫法比MFC容易多了,惡心程度大大降低了。
QQ開發(fā),服務(wù)器,帶寬非常貴。
軟件都得下載安裝exe,馬總頭帶帶寬費用,modem/ADSL這都是要錢的,用戶也不喜歡大的EXE。
QQ優(yōu)化VC 代碼,讓QQ.exe的體積變得非常?。?00K以下,幾十K)。馬總開心
WTL微軟早就不升級、更新了
4. Qt
Qt特點:
JAVA源代碼不用改,一次編譯,到處運行。不需要在每個平臺下再編譯一次源程序。
Qt是源代碼不用改,但是要在不同的操作系統(tǒng)下(WIN/LINUX)進行編譯出對應的pe文件,elf文件。
Qt,Delphi后來發(fā)展得都可以寫Android了。
Qt的另一大優(yōu)點:界面GUI,在不同的操作系統(tǒng)平臺下都寫好了界面庫。調(diào)用API是一樣的。所以說你不需要修改源代碼,只需要在相應的操作系統(tǒng)下編譯下即可。
Qt其實作的就是把不同操作系統(tǒng)中的通用功能提煉成了API(OO類庫)
多線程,mutex,socket,文件
GUI庫
艾倫,比爾蓋茨,鮑爾默開發(fā)了win3.x操作系統(tǒng)
DOS WIN
鮑爾默被風(wind)吹走了
,從這往后微軟的CEO我就不關(guān)注了,因為互聯(lián)網(wǎng)時代到來了,大佬層出不窮。
PC端:EXE,DLL/linux chmod 755 腳本
WEB端:作網(wǎng)站。中國一定要跟上國際,有個網(wǎng)站