什麼是Windows SDK

來源:互聯網
上載者:User
 

SDK即software develope kit(軟體開發套件),它包含了進行Windows軟體開發的文檔和API函數的輸入庫、標頭檔(因為API在動態連結程式庫中,這些動態連結程式庫是系統的組成部分因此不用再提供,而輸入庫和標頭檔則必須,這樣才能在你的程式中使用API函數)。早期SDK是一個單獨發放的包,現在在Visual C++和其他一些開發環境中已經包含了它。如果你已經安裝了VC++那麼就可以開始編寫Windows程式了。隨著Windows系統的發展,SDK的內容越來越多,我們只要抓住最基本的方面。至於其他專門的主題,就根據自己的興趣和技術方向進一步學習了。

不用被第一個Windows程式嚇住

如果你已經開始,你的教材應該是那本經典的programming windows (petzold)或者是一本相似的書。但無論哪本書,一開始你都會面對一個基本的Windows SDK程式,這個程式有幾十行。儘管也不算長,但比C版的hello world長多了。更糟的是,裡面充斥著奇怪的變數類型和常量定義,不過先不用被它嚇住,讓我們看看這裡面有些什麼。首先會有一個#include <windows.h> ,嗯,沒什麼奇怪的,這和#inclde <stdio.h>沒什麼兩樣。然後是一個函式宣告:LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ; 有點困惑了,一下子就出來了好幾個“生詞”,而且函數名前面有兩個修飾符也是以前沒有遇到的。好在我們還可以辨認出這是一個函式宣告。再往下看是WinMain函數,又是一堆生詞,我猜想你可能已經開始鬱悶了。想一遍看懂這個程式確實困難,所以看不懂也沒關係。看不下去了可以看看書上的講解。這篇文章並不是要完整分析這個程式的,hfire不可能有petzold講的好。在這裡hfire幫你分析一下一些陌生的東西。

首先說Windows的資料類型。儘管這些資料類型看上去很陌生,其實它們是由C的基礎資料型別 (Elementary Data Type)define的。比如UINT就是unsinged int,PSTR就是pointer to string 的意思,猜猜就知道是char * 。Windows還有很多系統定義的結構體,比如WNDCLASS,MSG等,這些東西見的多了就自然明白了。Windows還有一個重要的概念,控制代碼。通過控制代碼就可以操作Windows對象。HWND,HINSTANCE,HDC等都是控制代碼。

再說說Windows程式的結構。一般有一個WinMain函數作為程式的進入點,在WinMain裡面定義視窗類別,進行訊息迴圈。訊息迴圈就是那個普通的while迴圈,在其中接收訊息、分發訊息。然後是視窗函數WndProc,名字可以自己定。在其中用一個大的switch結構檢索訊息,在每個case下面寫處理訊息的代碼。最簡單的Windows SDK程式只要寫這兩個函數就夠了。等你的程式寫長了,就要把特定的訊息處理代碼寫成函數,以便在處理訊息時調用,甚至你可以使用C++來寫程式。等你熟悉這種結構以後,就可以任意發揮了。

其他的不想說太多,學SDK很重要的是不要期望在開始時把每行代碼都搞清楚。

學習的方法

當然是多寫程式了。最好每個主題都寫一個。從一開始的視窗,文本顯示到圖形顯示、控制項、對話方塊,多寫就能領會Windows編程的內涵。當第一部分學的差不多了,可以寫一個綜合點的程式。最後你會發現你可以寫很長的程式了,1000多行也不算長,但對於當時學C時是難以想象的。還有重要的是多上一些專門的網站,比如VC知識庫(www.vckbase.com)和VC之路(有一本很好的教程,不過現在網站的東西都沒了,正在恢複),另外www.csdn.net也是一個不錯的地方。

幾種Windows編程方法的辨析及其它

很多初學者往往會將Windows編程和VC++混為一談。開啟VC++的建立項目,可以看到VC++支援很多種工程。包括命令列的,MFC的,還有就是Win32 Application,即SDK程式。使用VC++未必是編寫SDK程式,編寫SDK程式也未必要用VC++。編寫Windows程式的方法也不止SDK一種,還包括使用類庫如MFC,OWL,使用快速開發工具如VB,Delphi。這些方法各有各的用處。使用SDK無疑是最麻煩的了,我們學習SDK也並非是為了用它來編軟體,雖然它可以,主要是為了對Windows編程有比較清晰的認識,這樣你使用MFC時就可以做到“胸中自有溝壑”。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.