引言:
學習C語言很久了,是不是一直在跟黑乎乎的屏幕打交道,像QQ、360、VC6.0這樣的軟件都是帶界面的,怎麼做到的呢?
前面我們講的”黑屏“叫控制檯應用程序(Win32 Console Application),也稱DOS程序(或MS-DOS程序)。DOS是早期的命令式操作系統,很難做出漂亮的界面,除了開發人員,”黑屏“對普通用戶很不友好。
帶界面的程序叫Windows應用程序(Win32 Application)。Windows是一款現代操作系統,帶有豐富的交互界面,使用簡單,無需記憶繁雜的命令。
使用C語言可以開發出Windows應用程序,也就是帶界面的程序,只是絕大部分C語言教程沒有講,它們只講了基本語法,讓很多初學者認為學C語言沒用,什麼都做不出來。
其實不是這樣的,C語言只是一種工具,需要與Windows系統結合,藉助Windows提供的函數才能開發出漂亮的程序。
Windows API 編程、Windows編程、Windows SDK 編程是一個概念。
什麼是windos編程:
在C語言中,使用fopen()函數可以打開一個文件,感覺非常簡單。文件保存在硬盤上,要經過複雜的處理才能顯示,這些細節對我們來說是透明的,由操作系統完成。也就是說,我們調用fopen()函數來通知操作系統,讓操作系統打開一個文件。
那麼,我們如何告訴操作系統打開文件呢?
看似簡單的操作到底層都非常複雜,打開文件首先要掃描硬盤,找到文件的位置,然後從文件中讀取一部分數據,將數據放進I/O緩衝區,放進內存;這些數據都是0、1序列,還要對照ASCII表或Unicode表”翻譯“成字符,再在顯示器上顯示出來。這個過程如果要讓程序員來完成,那簡直是噩夢!
怎麼辦呢?Windows想了一個很好的辦法,它預先把這些複雜的操作寫在一個函數里面,編譯成動態鏈接庫(DLL),隨Windows一起發佈,程序員只需要簡單地調用這些函數就可以完成複雜的工作,讓編程變得簡單有趣。
這些封裝好的函數,叫做 API(Application Programming Interface),即應用程序編程接口。
API 函數以C語言的形式向外暴露,可以通過C語言直接調用。
除了函數,Windows 還預先定義了很多數據類型(使用C語言的 typedef 關鍵字定義)。廣義上來說,這些數據類型也是 API 的一部分。
API 屏蔽了很多細節,大大簡化了程序員的工作,這就是操作系統的威力,不但讓普通用戶使用方便,也讓程序員如釋重負。
在Windows上運行的程序(包括MS-DOS程序),本質上都是通過調用Windows API來完成功能的,包括QQ、360、VC6.0等,別看這些團隊牛,也不可能從底層做起,那簡直不可想象。
C語言也一樣,也是調用Windows API,fopen() 函數就是通過調用 CreateFile() 函數實現的。CreateFile() 是Windows API中的一個函數,可以用來打開或創建文件。
通常所說的 SDK 編程就是直接調用API 函數進行編程。SDK 是 Software Development Kit 的縮寫,即軟件開發工具包。
Windows API 函數成千上萬,詳細瞭解每一個函數的用法是不可能的,也是完全沒有必要的。只需知道哪些功能由哪些API 函數提供就行了,等使用它們時再去查閱幫助文件。
帶界面的程序的專業稱呼是GUI程序。GUI 是 Graphical User Interface 的簡寫,即圖形用戶界面。本教程將教你使用 Windows API 來編寫GUI程序,編程語言為C語言。
C語言學來幹什麼?
你或許學C語言很久了,沒什麼感覺,可能學python都可以抓取網站的數據了,C語言還是默默無聲。
不要放棄,今天我們介紹了windows編程,windows編程就是運用C語言,我們的底層系統C語言的傑出作品。
那些特別牛的軟件可以沒有C語言嗎?請記住:C語言永不過時!
閱讀更多 源世界Z 的文章