COM Interop 簡介 (Visual Basic)

元件物件模型 (COM) 可讓物件將其功能公開給其他元件和主應用程式。 雖然多年來,COM 物件一直是 Windows 程式設計的基礎,不過針對 Common Language Runtime (CLR) 設計的應用程式提供許多優點。

.NET Framework 應用程式最終將取代使用 COM 開發的應用程式。 在那之前,可能必須藉由 Visual Studio 來使用或建立 COM 物件。 與 COM 的互通性 (Interoperability) 或是所謂的 COM Interop,可讓您使用現有的 COM 物件,同時又可依照自己的進度逐漸轉換到 .NET Framework。

藉由使用 .NET Framework 建立 COM 元件,即可使用免註冊的 COM Interop。 如此一來,當電腦上有安裝一個以上的 DLL 版本時,您就可以控制要啟用哪個 DLL 版本,並且讓使用者可以使用 XCOPY 或 FTP,將您的應用程式複製到他們電腦上應用程式可以執行的適當目錄。 如需詳細資訊,請參閱免註冊的 COM Interop

Managed 程式碼和資料

針對 .NET Framework 開發的程式碼稱為「Managed 程式碼」(Managed Code),其中包含由 CLR 使用的中繼資料 (Metadata)。 .NET Framework 應用程式所使用的資料就稱為「Managed 資料」(Managed Data),因為執行階段會管理資料相關工作,例如配置和回收記憶體以及執行型別檢查。 根據預設,Visual Basic 2005 會使用 Managed 程式碼和資料,但您可使用 Interop 組件 (將稍後在這個頁面中說明) 來存取 COM 物件的 Unmanaged 程式碼和資料。

組件

組件就是 .NET Framework 應用程式最主要的建置組塊。 它是功能的集合,可建置、改寫以及部署為包含一個或多個檔案的單一實作單元。 每個組件都包含一份組件資訊清單 (Assembly Manifest)。

型別程式庫和組件資訊清單

型別程式庫描述 COM 物件的特性,例如成員名稱和資料型別。 組件資訊清單則會針對 .NET Framework 應用程式執行相同的功能。 組件資訊清單包含下列資訊:

  • 組件識別 (Identity)、版本、文化特性和數位簽章。

  • 組成組件實作的檔案。

  • 構成組件的型別和資源。 其中包含從組件匯出的型別和資源。

  • 與其他組件的編譯時期相依性。

  • 正常執行組件所需的使用權限。

如需組件和組件資訊清單的詳細資訊,請參閱組件和全域組件快取 (C# 和 Visual Basic)

匯入和匯出型別程式庫

Visual Studio 包含公用程式 Tlbimp,可讓您將型別程式庫的資訊匯入 .NET Framework 應用程式。 您可以使用 Tlbexp 公用程式來從組件產生型別程式庫。

如需 Tlbimp 和 Tlbexp 的詳細資訊,請參閱Tlbimp.exe (型別程式庫匯入工具)Tlbexp.exe (型別程式庫匯出工具)

Interop 組件

Interop 組件是用來當做 Managed 和 Unmanaged 程式碼之間連接橋樑的 .NET Framework 組件,會將 COM 物件成員對應至對等的 .NET Framework Managed 成員。 Visual Basic 2005 建立的 Interop 組件可處理許多使用 COM 物件的細節,例如互通性封送處理 (Marshaling)。

互通性封送處理

所有 .NET Framework 應用程式都共用一組一般型別,可讓物件在無論使用何種程式語言的情況下互通。 COM 物件的參數和傳回值有時使用的資料型別與在 Managed 程式碼中使用的不同。 「互通性封送處理」(Interoperability Marshaling) 是參數和傳回值在 COM 物件之間來回移動時,將其封裝 (Package) 為對等資料型別的處理過程。 如需詳細資訊,請參閱 Interop 封送處理

請參閱

工作

逐步解說:實作 COM 物件的繼承 (Visual Basic)

疑難排解互通性 (Visual Basic)

參考

Tlbimp.exe (型別程式庫匯入工具)

Tlbexp.exe (型別程式庫匯出工具)

概念

組件和全域組件快取 (C# 和 Visual Basic)

Interop 封送處理

其他資源

COM Interop (Visual Basic)

與 Unmanaged 程式碼互通

免註冊的 COM Interop