Gewusst wie: Erstellen von COM-Wrappern

Hinweis

Dieser Leitfaden ist spezifisch für .NET Framework. Verwenden Sie für moderne .NET COM-Interoperabilität quellgenerierte COM-Interoperabilität oder die System.Runtime.InteropServices.ComWrappers API. Weitere Informationen finden Sie unter COM-Interopübersicht und COM-Quellgenerierung.

Sie können mit Visual Studio-Features oder den .NET Framework-Tools „Tlbimp.exe“ und „Regasm.exe“ COM-Wrapper (Component Object Model) erstellen. Beide Methoden generieren zwei Typen von COM-Wrappern:

  • Ein Runtime Callable Wrapper aus einer Typbibliothek, um ein COM-Objekt in verwaltetem Code auszuführen.

  • Ein COM Callable Wrapper mit den erforderlichen Registrierungseinstellungen führt ein verwaltetes Objekt in einer nativen Anwendung aus.

In Visual Studio können Sie den COM-Wrapper als Verweis zu Ihrem Projekt hinzufügen.

COM-Objekte in einer verwalteten Anwendung kapseln

So erstellen Sie mit Visual Studio einen laufzeitaufrufbaren Wrapper

  1. Öffnen Sie das Projekt für Ihre verwaltete Anwendung.

  2. Klicken Sie im Menü Projekt auf Alle Dateien anzeigen.

  3. Klicken Sie im Menü Projekt auf Verweis hinzufügen .

  4. Klicken Sie im Dialogfeld „Verweis hinzufügen“ auf die Registerkarte COM, wählen Sie die Komponente aus, die Sie verwenden möchten, und klicken Sie auf OK.

    Im Projektmappen-Explorer beachten Sie, dass die COM-Komponente dem Ordner „Verweise“ in Ihrem Projekt hinzugefügt wird.

Sie können jetzt Code schreiben, um auf das COM-Objekt zuzugreifen. Sie können mit der Objektdeklaration beginnen, zum Beispiel mit einer Imports-Anweisung für Visual Basic oder einer Using-Anweisung für C#.

Hinweis

Wenn Sie Microsoft Office-Komponenten programmieren möchten, installieren Sie zunächst das Redistributable für primäre Interop-Assemblys von Microsoft Office.

So erstellen Sie einen Runtime Callable Wrapper mit .NET Framework-Tools

Dieses Tool erstellt eine Assembly, die Laufzeitmetadaten für die in der ursprünglichen Typbibliothek definierten Typen enthält.

Umschließen verwalteter Objekte in einer systemeigenen Anwendung

So erstellen Sie mit Visual Studio einen COM-Callable-Wrapper

  1. Erstellen Sie ein Klassenbibliotheksprojekt für die verwaltete Klasse, die Sie in nativem Code ausführen möchten. Die Klasse muss einen parameterlosen Konstruktor haben.

    Überprüfen Sie, ob Sie eine vollständige vierteilige Versionsnummer für die Assembly in der AssemblyInfo-Datei besitzen. Diese Zahl ist für die Versionszuweisung in der Windows-Registrierung erforderlich. Weitere Informationen zu Versionsnummern finden Sie unter Assemblyversionsverwaltung.

  2. Klicken Sie im Menü Projekt auf Eigenschaften.

  3. Klicken Sie auf die Registerkarte Kompilieren.

  4. Aktivieren Sie das Kontrollkästchen Für COM-Interop registrieren.

Wenn Sie das Projekt erstellen, wird die Assembly für COM-Interop automatisch registriert. Wenn Sie in Visual Studio eine native Anwendung erstellen, können Sie die Assembly verwenden, indem Sie im Menü Projekt auf Verweis hinzufügen klicken.

So erstellen Sie einen COM Callable Wrapper mithilfe von .NET Framework-Tools

Führen Sie das Tool Regasm.exe (Assembly Registration-Tool) aus.

Dieses Tool liest die Metadaten in einer Assembly und fügt der Registrierung die notwendigen Einträge hinzu. Folglich können COM-Clients .NET Framework-Klassen transparent erstellen. Sie können die Assembly verwenden, als handle es sich um eine native COM-Klasse.

Sie können Regasm.exe für eine Assembly in jedem beliebigen Verzeichnis ausführen und anschließend das Gacutil.exe (Global Assembly Cache Tool) ausführen, um sie in den globalen Assemblycache zu verschieben. Beim Verschieben der Assembly werden die Registrierungseinträge für den Speicherort nicht ungültig, da der globale Assemblycache immer überprüft wird, wenn die Assembly nicht an einem anderen Speicherort gefunden wird.

Siehe auch