COM Interop 簡介 (Visual Basic)

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

.NET Framework 應用程式最終會取代以 COM 開發的應用程式。 在那之前,您可能必須使用 Visual Studio 才能使用或建立 COM 物件。 利用與 COM 的互通性或 COM Interop,可讓您使用現有 COM 物件,同時依照自己的步調轉換至 .NET Framework。

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

受控程式碼和資料

針對 .NET Framework 開發的程式碼稱為受控程式碼,並包含 CLR 所使用的中繼資料。 .NET Framework 應用程式所使用的資料稱為受控資料,因為執行階段會管理資料相關工作,例如配置和回收記憶體,以及執行類型檢查。 根據預設,Visual Basic .NET 會使用受控程式碼和資料,但您可以使用 Interop 組件存取 COM 物件的非受控程式碼和資料 (本頁稍後將提供說明)。

組件

組件是 .NET Framework 應用程式的主要建置組塊。 它是作為包含一或多個檔案的單一實作單位所構建、建立版本和部署的功能集合。 每個組件都包含組件資訊清單。

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

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

  • 組件身分識別、版本、文化特性和數位簽章。

  • 構成組件實作的檔案。

  • 構成組件的類型和資源。 這也包括從中匯出的項目。

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

  • 正確執行組件所需的權限。

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

匯入和匯出型別程式庫

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

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

Interop 組件

Interop 組件是 .NET Framework 組件,可橋接受控和非受控程式碼,將 COM 物件成員對應至對等的 .NET Framework 受控成員。 由 Visual Basic .NET 建立的 Interop 組件會處理許多使用 COM 物件的詳細資料,例如互通性封送處理。

互通性封送處理

無論使用何種程式設計語言,所有 .NET Framework 應用程式都會共用一組可支援物件互通性的通用類型。 COM 物件的參數和傳回值有時會使用不同於受控程式碼中所使用的資料類型。 互通性封送處理是在參數與傳回值移入和移出 COM 物件時,將其封裝為對等資料類型的流程。 如需詳細資訊,請參閱 Interop 封送處理

另請參閱