引言:python
學習C語言好久了,是否是一直在跟黑乎乎的屏幕打交道,像QQ、360、VC6.0這樣的軟件都是帶界面的,怎麼作到的呢?程序員
前面咱們講的」黑屏「叫控制檯應用程序(Win32 Console Application),也稱DOS程序(或MS-DOS程序)。DOS是早期的命令式操做系統,很難作出漂亮的界面,除了開發人員,」黑屏「對普通用戶很不友好。編程
帶界面的程序叫Windows應用程序(Win32 Application)。Windows是一款現代操做系統,帶有豐富的交互界面,使用簡單,無需記憶繁雜的命令。windows
使用C語言能夠開發出Windows應用程序,也就是帶界面的程序,只是絕大部分C語言教程沒有講,它們只講了基本語法,讓不少初學者認爲學C語言沒用,什麼都作不出來。微信
其實不是這樣的,C語言只是一種工具,須要與Windows系統結合,藉助Windows提供的函數才能開發出漂亮的程序。編程語言
Windows API 編程、Windows編程、Windows SDK 編程是一個概念。函數
在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語言好久了,沒什麼感受,可能學python均可以抓取網站的數據了,C語言仍是默默無聲。
不要放棄,今天咱們介紹了windows編程,windows編程就是運用C語言,咱們的底層系統C語言的傑出做品。
另外若是你想更好的提高你的編程能力,學好C語言C++編程!彎道超車,快人一步!
C語言C++編程學習交流圈子,QQ羣1095293493【點擊進入】微信公衆號:C語言編程學習基地
分享(源碼、項目實戰視頻、項目筆記,基礎入門教程)
歡迎轉行和學習編程的夥伴,利用更多的資料學習成長比本身琢磨更快哦!
編程學習書籍分享:
編程學習視頻分享: