COM Interop 簡介 (Visual Basic)

元件物件模型 (COM) 可讓物件向其他元件公開其功能,以及裝載應用程式。 雖然 COM 物件多年來一直是 Windows 程式設計的基礎,但專為 Common Language Runtime (CLR) 設計的應用程式提供了許多優點。

與 COM 的互通性,或稱 COM 互操作,讓你能使用來自 .NET 應用程式的現有 COM 物件。

透過使用 .NET 建立 COM 元件,你可以使用免註冊的 COM 互通。 這可讓您控制在計算機上安裝多個版本時啟用哪個 DLL 版本,並讓使用者使用 XCOPY 或 FTP,將應用程式複製到其電腦上可執行的適當目錄。 如需詳細資訊,請參閱 Registration-Free COM Interop

Managed 程式碼和資料

為 .NET 開發的程式碼稱為受管理程式碼,包含 CLR 使用的元資料。 .NET 應用程式所用的資料稱為受管理資料,因為執行時會管理與資料相關的任務,例如分配與回收記憶體以及執行型別檢查。 預設情況下,Visual Basic 使用受管理程式碼與資料,但您也可以透過互操作組件(本頁稍後將說明)存取 COM 物件的非管理程式碼與資料。

組件

組件是 .NET 應用程式的主要建構組件。 它是建置、版本設定及部署為包含一或多個檔案的單一實作單位的功能集合。 每個元件都包含元件指令清單。

類型連結庫和元件指令清單

類型庫描述 COM 物件的特性,例如成員名稱和數據類型。 組合清單對 .NET 應用程式執行相同功能。 其中包括下列資訊:

  • 元件身分識別、版本、文化特性和數字簽名。
  • 構成組件實作的檔案。
  • 組成元件的類型和資源。 這包括從中匯出的項目。
  • 編譯時對其他元件的相依性。
  • 應用程式正確運行所需的權限。

如需元件和元件指令清單的詳細資訊,請參閱 .NET 中的元件

匯入和匯出類型庫

Visual Studio 包含一個工具 Tlbimp,可以讓你將型別函式庫的資訊匯入 .NET 應用程式。 您可以使用 Tlbexp 公用程式,從元件產生類型連結庫。

如需 Tlbimp 和 Tlbexp 的相關信息,請參閱 Tlbimp.exe (類型庫匯入工具)Tlbexp.exe (類型庫導出工具)

Interop 組件

Interop 組件是用來橋接受控與非受控程式碼的 .NET 組件,會將 COM 物件成員對應到等效的 .NET 受控成員。 Visual Basic .NET 所建立的 Interop 元件會處理許多使用 COM 物件的細節,例如互操作封送處理。

互操作性封送處理

所有 .NET 應用程式共享一組共同型別,無論使用何種程式語言,都能實現物件間的互通性。 COM 物件的參數和返回值有時會使用與 Managed 程式碼中不同的資料類型。 互操作性封送處理是將參數和返回值封裝成相等的數據類型,隨著它們進出 COM 物件的過程。 如需詳細資訊,請參閱 Interop 封送處理

另請參閱