Einführung in COM-Interop (Visual Basic)

Das Component Object Model (COM) erlaubt einem Objekt, seine Funktionen für andere Komponenten und Hostanwendungen verfügbar zu machen. Während COM-Objekte seit vielen Jahren für die Windows-Programmierung von grundlegender Bedeutung sind, bieten Anwendungen, die für die Common Language Runtime (CLR) entwickelt wurden, viele Vorteile.

.NET Framework-Anwendungen werden letztendlich die mit dem COM entwickelten Anwendungen ersetzen. Bis dahin müssen Sie COM-Objekte möglicherweise mithilfe von Visual Studio verwenden oder erstellen. Die Interoperabilität mit dem COM oder COM-Interop ermöglicht Ihnen die Verwendung vorhandener COM-Objekte, während Sie in Ihrem eigenen Tempo zum .NET Framework wechseln.

Wenn Sie das .NET Framework zum Erstellen von COM-Komponenten verwenden, können Sie COM-Interop ohne Registrierung verwenden. Dadurch können Sie steuern, welche DLL-Version aktiviert wird, wenn auf einem Computer mehrere Versionen installiert sind, und Endbenutzer*innen können Ihre Anwendung über XCOPY oder FTP in ein passendes Verzeichnis auf ihrem Computer kopieren, in dem sie ausgeführt werden kann. Weitere Informationen finden Sie unter COM-Interop ohne Registrierung.

Verwalteter Code und verwaltete Daten

Code, der für das .NET Framework entwickelt wurde, wird als verwalteter Code bezeichnet und enthält Metadaten, die von der CLR verwendet werden. Von .NET Framework-Anwendungen verwendete Daten werden als verwaltete Daten bezeichnet, da die Runtime datenbezogene Aufgaben verwaltet, z. B. das Zuweisen und erneute Beanspruchen von Arbeitsspeicher und das Ausführen der Typüberprüfung. Standardmäßig verwendet Visual Basic .NET verwalteten Code und verwaltete Daten. Sie können jedoch mithilfe von Interopassemblys auf den nicht verwalteten Code und die Daten von COM-Objekten zugreifen (wie weiter unten auf dieser Seite beschrieben).

Assemblys

Eine Assembly ist der primäre Baustein einer .NET Framework-Anwendung. Hierbei handelt es sich um eine Sammlung von Funktionen, die als einzelne Implementierungseinheit mit einer oder mehreren Dateien erstellt, versioniert und bereitgestellt wird. Jede Assembly enthält ein Assemblymanifest.

Typbibliotheken und Assemblymanifeste

Typbibliotheken beschreiben Merkmale von COM-Objekten, z. B. Membernamen und Datentypen. Assemblymanifeste erfüllen dieselbe Funktion für .NET Framework-Anwendungen. Sie enthalten folgende Informationen:

  • Assemblyidentität, Version, Kultur und digitale Signatur.

  • Dateien, aus denen die Assemblyimplementierung besteht.

  • Typen und Ressourcen, aus denen die Assembly besteht. Dies schließt diejenigen ein, die daraus exportiert werden.

  • Kompilierzeitabhängigkeiten von anderen Assemblys.

  • Berechtigungen, die für die ordnungsgemäße Ausführung der Assembly erforderlich sind.

Weitere Informationen zu Assemblys und Assemblymanifesten finden Sie unter Assemblys in .NET.

Importieren und Exportieren von Typbibliotheken

Visual Studio enthält das Hilfsprogramm Tlbimp, mit dem Sie Informationen aus einer Typbibliothek in eine .NET Framework-Anwendung importieren können. Sie können Typbibliotheken aus Assemblys generieren, indem Sie das Hilfsprogramm Tlbexp verwenden.

Informationen zu Tlbimp und Tlbexp finden Sie unter Tlbimp.exe (Type Library Importer-Tool) und unter Tlbexp.exe (Type Library Exporter-Tool).

Interopassemblys

Interopassemblys sind .NET Framework-Assemblys, die eine Brücke zwischen verwaltetem und nicht verwaltetem Code herstellen und COM-Objektmember äquivalenten verwalteten .NET Framework-Membern zuordnen. Interopassemblys, die von Visual Basic .NET erstellt wurden, übernehmen viele Details der Arbeit mit COM-Objekten, z. B. das Interoperabilitätsmarshalling.

Interoperabilitätsmarshalling

Alle .NET Framework-Anwendungen verwenden eine Reihe gemeinsamer Typen, die die Interoperabilität von Objekten unabhängig von der verwendeten Programmiersprache ermöglichen. Die Parameter und Rückgabewerte von COM-Objekten verwenden manchmal Datentypen, die sich von den in verwaltetem Code verwendeten unterscheiden. Beim Interoperabilitätsmarshalling werden Parameter und Rückgabewerte in gleichwertige Datentypen verpackt, wenn sie zu und von COM-Objekten verschoben werden. Weitere Informationen finden Sie unter Interop-Marshalling.

Siehe auch