nerror="javascript:errorimg.call(this);" class="" width="" height="" style="" id="" >
另外,很多朋友學了C語言,發現編寫的都是黑洞洞的命令行程序,現在的電腦里,窗口程序已經成為“高大上”的一個標準之一了,只有一些系統服務,系統命令工具還保持控制臺風格,那要編寫Windows下的窗口程序在怎么學習呢?
nerror="javascript:errorimg.call(this);" class="" width="" height="" style="" id="" >
考慮到本篇文章是為初學者或者有一定C語言基礎的朋友準備的,所以我按照學習的步驟來講怎么編寫Windows程序,有會的部分可以跳過進入下一部分。
一,安裝窗口編譯環境
要開始Windows編程,我們需要安裝一個開發環境,我推薦你在VS下編寫窗口程序,版本不是最重要的,不管是VS2013、VS2010、VS2008、哪怕是VS2005,甚至是VC都不是關鍵,也不是越新越好,最好跟你的Windows系統版本匹配。這里我們不討論具體某個最新特性,而是常規的窗口程序編寫,因為一些特性是對版本有要求的。比如我現在用的是VS2008,這個版本雖然不新,但是他的大小差不多,包括MSDN一起安裝下來4G左右,關鍵的是這個版本還可以開發很多市面上支持的WinCE開發板嵌入式程序。
二,安裝幫助文檔MSDN
雖然這個不是必須,但為了后面的編程方便,我強烈建議你安裝MSDN,這個基本成了編寫Windows程序編寫的標配了,有了這個東西,那些API函數的用法,很多實例代碼和說明上面都能找到。它不只是有編寫Win32的指導,好包括MFC、C#、VB、COM、DirectX等Windows下各種編程的說明文檔,所以只要你是在Windows環境下開發,都有很多值得參考的編程技術指導。
nerror="javascript:errorimg.call(this);" class="" width="" height="" style="" id="" >
要用C/C++語言開發Windows的程序,C/C++語言是基礎。學習C/C++語言的學習資料和方法網上到處都有,教程也是多如牛毛,各有各的理解和喜好,至于什么書好,自己去查,我也不想在這里被拍磚,但至少C/C++語言常用語法和知識點都應該知道,能用C語言編寫一些基本程序,知道如何調用第三方的API。要準備開發Windows程序,我建議學習C/C++語言就在上面安裝的VS環境下進行。雖然學習C/C++語言有其他一些開發環境可以選擇,比如code block、eclipse等等,要單學習C/C++語言是沒有問題的,但是計劃要在Windows下開發,還是VS比較主流。有了一些基礎也可以邊學Windows相關知識,一邊鍛煉C/C++語言。當有了這些基本知識,我們就可以進入下一步的Windows開發學習了。
四,了解Windows編程
這里不涉及C#和VB這種其他語言的Windows下的應用,而是特指C/C++編寫。編寫Windows程序一般有兩種,一種是MFC;一種是Win32編程,一般這種就是通常所說的Windows編程,它跟Windows下編程不是一個概念。MFC全稱是微軟基礎類庫(Microsoft Foundation Classes),它是微軟公司將Windows的那些常用的API函數封裝成了相關的類,比如典型的窗口類就封裝了窗口的管理的各種方法和熟悉,各種控件都有窗口類派生出來。MFC模式編程基本上都是使用C++,這個要求你有一定的C++基礎。Win32編程是Windows最“原始”的編程模式,只要有C語言基礎就可以,這種編程模式就是采用C語言+Windows API調用的方式,MFC那些類封裝的成員函數,最后也都是調用了Windows的API接口。這種編程方式由于比MFC更直接,編出來的應用程序要小不少,效率相對更高,調試和運行過程更容易理解,尤其是對那些C++學得不太好的同學更容易接受。有些變態功能用MFC相當不好實現,但是用Win32就不存在這些限制,“副作用”就是要求你更了解Windows方面系統API,具體哪種適合您,請自己選擇。BTW,國外的大牛們一般都用Win32方式!
nerror="javascript:errorimg.call(this);" class="" width="" height="" style="" id="" >
對于不太熟悉Windows窗口編程的菜鳥,也許目前還不了解要學Windows哪些東西呢?鼠標操作?玩游戲?開玩笑了,肯定不是。Windows編程可以分為兩部分,第一部分就是Windows下的交互界面編程,對于沒有真正理解Windows編程的人來說,這部分可能就是所謂的Windows編程了;另外一部分就是深入理解Windows的運行機制、內存管理和核心對象。下面就是第一部分主要的學習內容:
框架——Windows是一個消息驅動的系統,它包括基本消息循環框架、各種消息產生和處理、傳遞關系。
窗口——這個部分包括各種窗口的管理,比如創建、銷毀、背景、移動、重繪、透明處理等。
控件——這個部分包括Windows窗口上的各種控件的使用和管理。
GDI——這個部分包括用于繪制的各種GDI對象,比如字體、位圖、畫刷、畫筆、區域、路徑等。
外設——這個部分包括鼠標、鍵盤、打印機等、串/并口。
六,Windows編程提高
這一部分要學習的內容就是上面說到的第二部分,它是Windows的精髓,但是也不容易理解,體現了Windows的內部運行機制,作為高級Windows開發必須學習,一個復雜的Windows應用或多或少都會應用到這些部分或全部。下面列出了主要的學習內容:
內核對象——包括進程、線程、調度、同步操作的相關知識。
內存管理——包括Windows系統的虛擬內存管理、地址空間、內存映射等。
動態鏈接庫——包括動態庫原理、創建和相關高級應用。
異常處理——包括結構化異常處理、異常鏈、錯誤與恢復。
如果對編程感興趣,想了解更多的編程知識,解決編程問題,以及入門指導,幫你解決編程中遇到的困惑,我們這里有java高手,C++/C高手,windows/Linux高手,android/ios高手,請大家關注微信公眾號:程序員互動聯盟或者coder_online
本文屬原創,禁止轉載,謝謝