在 VS2008 及 VS2010 安裝 PInvoke.Net

對於時不時需要在 VB/C# 裡面塞入一些 Win32 API 功能的程式設計師而言, PInvoke.Net 是一個非常好用的工具 (它甚至被 MSDN 雜誌評選為最需要被安裝的十個 VS Addin 之一)...

對於時不時需要在 VB/C# 裡面塞入一些 Win32 API 功能的程式設計師而言, PInvoke.Net 是一個非常好用的工具 (它甚至被 MSDN 雜誌評選為最需要被安裝的十個 VS Addin 之一)。可惜的是, 雖然這個工具完全支援 VS2003/2005, 它似乎並不認識 VS2008 及 VS2010 (即使 VS2008/2010 都已經上市那麼久了)。

如果要讓它在 VS2008 上能夠使用, 你可以按照以下的步驟來做:

1. 首先, 在 %programfiles%\red gate\PInvoke.NET 子目錄下面找到 PInvokeDotNetAddIn.Addin 這個檔案, 以 NotePad 開啟它。

2. 在這個檔案中找到最後一個 </HostApplication> 標記, 然後把以下這一段插入其下方 (記得存檔):

<HostApplication>
     <Name>Microsoft Visual Studio Macros</Name>
     <Version>9.0</Version>
</HostApplication>
<HostApplication>
     <Name>Microsoft Visual Studio</Name>
     <Version>9.0</Version>
</HostApplication>

3. 打開 VS2008, 開啟 Tools 選單, 再選擇 Options 中的 Add-in/Macro Security 項目, 把 PInvoke.Net Addin 的安裝子目錄路徑 (C:\Program Files\Red Gate\PInvoke.NET) 加進列表裡面。

4. 重新開啟 VS2008, 你就可以在選單上找到 PInvoke.Net 項目了。在程式碼畫面中, 從該選單中選擇 Insert PInvoke Signatures 就行了。

對於 VS2010, 方法一樣, 但是要把上面 <Version>9.0</Version> 字樣改為 <Version>10.0</Version> 即可。

要使用 PInvoke.Net, 你可以在視窗上方輸入你想要查詢的 Win32 函式, 例如 "InternetOpen", 然後按下 Search 按鈕。如果找到的話, 你就可以在右邊視窗中看到對應的程式碼。不過, 並不是每個 Win32 API 都能找到對應的 C#/VB 碼; 有很多時候, 如果找不到可用的程式碼, 那麼可以按右下角視窗裡面的 Go To Function on PInvoke.Net 連結, 連到官方網站中繼續查詢。它的官網製作得如同 Wiki 一般, 你無需註冊就可以提供建議, 像我就對 WinInet/InternetCrackUrl 提供了我的建議 (我提供的是 C# 版本, 至於 VB 版本就不知道是誰提供的)。


Dev 2Share @ 點部落