2011/6/9

.Net Interoperation 入門

就字面上來看, Interoperation 是一個英文複合字; 如果你在電腦上打入這個字, 一些 editor 的 spell checker 會告訴你拼字錯誤, 並建議你更改成 Inter-operation 甚至其它拼法。其實 Interoperation 是工程界普遍使用的字眼, 專指在不同系統中搭起的簡易或臨時的元件, 藉由製訂某些共通的協定, 以便這些系統可以共同作業。由於這個溝通界面可能並非非常嚴謹, 所以當其運作時, 必須特別有人從旁監督、隨時調整和修改。

在.Net 中, Interoperation (簡稱 Interop) 專指從.Net 應用程式中存取 unmanaged 程式元件的行為。我們知道, 當我們撰寫 .Net 應用程式或元件時, 這些元件都是 managed (受 .Net 執行環境所管理的)。但是如果是使用VB6/C/C++ 所撰寫的非 .Net 程式的 COM 元件, 對 .Net 而言, 都算是 unmanaged。如果我們企圖在 .Net 程式中存取那些 unmanaged 程式或資源, 就必須透過 Interoperation 技巧與COM 介接。

此外, 許多 Windows API 並沒有 .Net 的對應函式。換句話說, 如果我們要撰寫 Windows 應用程式, 而且我們必須使用到 Windows API 的話, 我們沒辦法從 .Net Framework 執行環境中找到對應的方法, 而必須透過 Interoperation 去呼叫 Windows API。