Einführung in COM-Interop (Visual Basic)

Mit COM (Component Object Model) kann ein Objekt seine Funktionen für andere Komponenten oder Hostanwendungen verfügbar machen. Wenn auch COM-Objekte lange Zeit wesentliche Bestandteile der Windows-Programmierung waren, so bieten doch Anwendungen, die für die Common Language Runtime (CLR) entwickelt wurden, viele Vorteile.

.NET Framework-Anwendungen werden früher oder später Anwendungen ersetzen, die mit COM entwickelt wurden. Bis dahin müssen Sie in Visual Studio COM-Objekte erstellen bzw. verwenden. COM-Interoperabilität (COM-Interop) ermöglicht das Verwenden vorhandener COM-Objekte, bis Sie vollständig zu .NET Framework übergegangen sind.

Mit .NET Framework können Sie COM-Interop ohne Registrierung zum Erstellen von COM-Komponenten verwenden. Wenn mehrere Versionen auf einem Computer installiert sind, können Sie damit steuern, welche DLL-Version aktiviert wird. Außerdem können Endbenutzer Ihre Anwendung mit XCOPY oder FTP in das entsprechende Verzeichnis auf ihrem Computer kopieren und ausführen. Weitere Informationen finden Sie unter COM-Interop ohne Registrierung.

Verwalteter Code und verwaltete Daten

Für .NET Framework entwickelter Code wird als verwalteter Code bezeichnet und enthält Metadaten, die von CLR verwendet werden. Die von .NET Framework-Anwendungen verwendeten Daten werden als verwaltete Daten bezeichnet, da die Laufzeit datenbezogene Aufgaben verwaltet, z. B. das Belegen und Freigeben von Speicher oder die Typüberprüfung. Standardmäßig verwendet Visual Basic 2005 verwalteten Code und verwaltete Daten. Mithilfe von Interop-Assemblys können Sie jedoch auf nicht verwalteten Code und nicht verwaltete Daten von COM-Objekten zugreifen. Interop-Assemblys werden weiter unten auf dieser Seite beschrieben.

Assemblys

Eine Assembly ist der wichtigste Baustein einer .NET Framework-Anwendung. Sie stellt eine Funktionalitätsauflistung dar, die erstellt, mit Versionsinformationen versehen und als einzelne Implementierungseinheit mit einer oder mehreren Dateien 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 die gleiche Funktion für .NET Framework-Anwendungen. Sie umfassen Informationen über Folgendes:

  • Assemblyidentität, Version, Kultur und digitale Signatur

  • Dateien der Assemblyimplementierung

  • Typen und Ressourcen, aus denen die Assembly besteht. Dazu gehören auch diejenigen, die von ihr exportiert werden.

  • Abhängigkeiten von anderen Assemblys für die Kompilierungszeit

  • Erforderliche Berechtigungen für die ordnungsgemäße Ausführung der Assembly

Weitere Informationen zu Assemblys und Assemblymanifesten finden Sie unter Assemblys und der globale Assemblycache (C# und Visual Basic).

Importieren und Exportieren von Typbibliotheken

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

Informationen über die Dienstprogramme Tlbimp und Tlbexp finden Sie unter Tlbimp.exe (Type Library Importer-Tool) und Tlbexp.exe (Type Library Exporter-Tool).

Interop-Assemblys

Interop-Assemblys sind .NET Framework-Assemblys, die als Brücke zwischen verwaltetem und nicht verwaltetem Code fungieren, indem sie COM-Objektmember den entsprechenden verwalteten .NET Framework-Membern zuordnen. Von Visual Basic 2005 erstellte Interop-Assemblys behandeln viele Einzelheiten der Arbeit mit COM-Objekten, z. B. Interoperabilitätsmarshalling.

Interoperabilitätsmarshalling

Alle .NET Framework-Anwendungen verfügen gemeinsam über eine Reihe häufig verwendeter Typen, die unabhängig von der verwendeten Programmiersprache die Interoperabilität von Objekten ermöglichen. Bei Parametern und Rückgabewerten von COM-Objekten werden gelegentlich andere Datentypen verwendet als in verwaltetem Code. Als Interoperabilitätsmarshalling wird das Zusammenfassen von Parametern und Rückgabewerten in äquivalente Datentypen beim Übergeben an und von COM-Objekten bezeichnet. Weitere Informationen finden Sie unter Interop-Marshalling.

Siehe auch

Aufgaben

Exemplarische Vorgehensweise: Implementieren der Vererbung mit COM-Objekten (Visual Basic)

Problembehandlung bei Interoperabilität (Visual Basic)

Referenz

Assemblys und der globale Assemblycache (C# und Visual Basic)

Tlbimp.exe (Type Library Importer-Tool)

Tlbexp.exe (Type Library Exporter-Tool)

Konzepte

Interop-Marshalling

Weitere Ressourcen

COM-Interop (Visual Basic)

Interoperation mit nicht verwaltetem Code

COM-Interop ohne Registrierung