Windows API中的資料結構

來源:互聯網
上載者:User

標籤:

值得說明的是,win32開發是C語言編程,因此,搞明白資料類型還是非常重要的。Windows API因為曆史原因或者為了方便在windows.h中將一些資料類型用typedef或者define宏重新進行定義。

  • UINT表示C語言中的無符號整型unsigned int
  • PSTR表示字串指標char *
  • WPARAM在16位時期的Windows中表示unsigned short int,而現在都是UINT
  • LPARAM表示long
  • WndProc函數的傳回型別LRESULT實際上就是long
  • 入口函數WinMain被指定的WINAPI和WndProc被指定的CALLBACK都表示的是_stdcall,表示Windows和使用者應用程式之間發生函數呼叫的參數傳遞方式。

另外,控制代碼是Windows API中大量使用的一種類型,比如HINSTANCE, HWND, HDC, HICON, HCUROR, HBRUSH。它們其實是一個32位的整數,代表某種特定的對象。據我所知這東西似乎也是單任務時期Windows的遺留產物,把同一個程式的不同執行個體進行標記,從而可以在它們之前進行記憶體上的繼承。

Windows的變數遵從匈牙利標記法,用開頭的小寫字母表示變數的類型屬性,比如:

  • szCmdLine中的sz表示結尾為”\0”的字串
  • hInstance和hPrevInstance開頭的字母h表示控制代碼handle
  • iCmdShow的起始字母i表示整型

而對於結構變數,比如MSG結構,就直接用msg表示;WNDCLASS結構wndclass; PaintStructure結構ps,等等。

現在看看,Windows的確有值得學習的地方,能夠用C語言建起一個系統核心和應用程式層,再通過其他的語言對Windows APIs進行封裝,構建COM, ATL, MFC, .NET等等更高的不同層次的開發層。現在在Visual Studio2015居然還嵌入了Java SE development,一個平台就可以編寫Desktop, Mobile Phone, Android, iOS程式。以前就聽聞Windows是最疼惜程式員的平台,就是太貴,不過現在Visual Studio 2015有免費授權的社區版Lisence可以用。

Windows API中的資料結構

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.