2009年11月10日 星期二

在.NET中輕鬆快樂叫用Win32 API –1 (.NET easy Call API - 1)

開發.NET應用程式,整合也是一項重要的設計議題,在這篇文章中,亞當斯要來跟各位介紹如何快速開發.NET應用程式叫用Win32 API。

基本上使用Visual Studio開發工具設計.NET應用程式,不管是ASP.NET或是WinForm等應用程式,如果要在程式當中叫用OS系統所提供的Win32 API,就必須先了解要叫用的是哪一個API,這個API當中又有多少個function(功能)可以使用,但是開發者不可能將幾千個API所提供的function一個一個背起來,況且每一個function所需要傳遞的參數也不盡相同。

那麼,到底要如何「快速」設計整合Win32 API的應用程式呢?這時候你可能會很直覺的想:「Visual Studio應該直接有提供可以查詢Win32 API的功能吧」,很遺憾的,Visual Studio有提供物件瀏覽器,卻沒有「預設」提供Win32 API瀏覽器,因此對程式設計師來說的確在叫用Win32 API或造成一些困擾。

有鑑於此,首先在這邊介紹一個開發Win32 API非常棒的參考網站:http://www.pinvoke.net/

clip_image002

Win32 API分門別類區分出來,那個dll中有哪些function,更重要的是,它有提供.NET叫用這些API的範例程式碼,也就是說你想要叫用哪一個功能,點選之後,網站會顯示出在.NET程式中宣告此Win32 API的方式,以及程式叫用的方法,這樣才能讓開發者快速開發。

舉個例子,假設我現在想要叫用user32.dll中的MessageBox功能,那麼在此網站中查詢的結果如下圖所示,可以得知該如何在.NET中宣告對應的程式:

clip_image002[6]

甚至連.NET應用程式如何叫用的範例程式,都有提供,請參考下圖:

clip_image004

沒有留言: