在C語言中,使用fopen()函數(shù)可以打開一個文件,感覺非常簡單。文件保存在硬盤上,要經(jīng)過復(fù)雜的處理才能顯示,這些細節(jié)對我們來說是透明的,由操作系統(tǒng)完成。也就是說,我們調(diào)用fopen()函數(shù)來通知操作系統(tǒng),讓操作系統(tǒng)打開一個文件。
那么,我們?nèi)绾胃嬖V操作系統(tǒng)打開文件呢?
看似簡單的操作到底層都非常復(fù)雜,打開文件首先要掃描硬盤,找到文件的位置,然后從文件中讀取一部分數(shù)據(jù),將數(shù)據(jù)放進I/O緩沖區(qū),放進內(nèi)存;這些數(shù)據(jù)都是0、1序列,還要對照ASCII表或Unicode表”翻譯“成字符,再在顯示器上顯示出來。這個過程如果要讓程序員來完成,那簡直是噩夢!
怎么辦呢?Windows想了一個很好的辦法,它預(yù)先把這些復(fù)雜的操作寫在一個函數(shù)里面,編譯成動態(tài)鏈接庫(DLL),隨Windows一起發(fā)布,程序員只需要簡單地調(diào)用這些函數(shù)就可以完成復(fù)雜的工作,讓編程變得簡單有趣。
這些封裝好的函數(shù),叫做 API(Application Programming Interface),即應(yīng)用程序編程接口。
API 函數(shù)以C語言的形式向外暴露,可以通過C語言直接調(diào)用。
除了函數(shù),Windows 還預(yù)先定義了很多數(shù)據(jù)類型(使用C語言的 typedef 關(guān)鍵字定義)。廣義上來說,這些數(shù)據(jù)類型也是 API 的一部分。
API 屏蔽了很多細節(jié),大大簡化了程序員的工作,這就是操作系統(tǒng)的威力,不但讓普通用戶使用方便,也讓程序員如釋重負。
在Windows上運行的程序(包括MS-DOS程序),本質(zhì)上都是通過調(diào)用Windows API來完成功能的,包括QQ、360、VC6.0等,別看這些團隊牛,也不可能從底層做起,那簡直不可想象。
C語言也一樣,也是調(diào)用Windows API,fopen() 函數(shù)就是通過調(diào)用 CreateFile() 函數(shù)實現(xiàn)的。CreateFile() 是Windows API中的一個函數(shù),可以用來打開或創(chuàng)建文件。
通常所說的 SDK 編程就是直接調(diào)用API 函數(shù)進行編程。SDK 是 Software Development Kit 的縮寫,即軟件開發(fā)工具包。
Windows API 函數(shù)成千上萬,詳細了解每一個函數(shù)的用法是不可能的,也是完全沒有必要的。只需知道哪些功能由哪些API 函數(shù)提供就行了,等使用它們時再去查閱幫助文件。
帶界面的程序的專業(yè)稱呼是GUI程序。GUI 是 Graphical User Interface 的簡寫,即圖形用戶界面。本教程將教你使用 Windows API 來編寫GUI程序,編程語言為C語言。
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請
點擊舉報。