Freigeben über


Exemplarische Vorgehensweise: Erstellen von COM-Objekten mit Visual Basic

Beim Erstellen neuer Anwendungen oder Komponenten empfiehlt es sich, .NET Framework-Assemblys zu erstellen. Visual Basic erleichtert jedoch auch die Bereitstellung einer .NET Framework-Komponente für COM. Auf diese Weise können Sie neue Komponenten für frühere Anwendungssammlungen bereitstellen, die COM-Komponenten erfordern. In dieser exemplarischen Vorgehensweise wird die Verwendung von Visual Basic zum Verfügbarmachen von .NET Framework-Objekten als COM-Objekte sowohl mit als auch ohne die COM-Klassenvorlage veranschaulicht.

Die einfachste Möglichkeit zum Verfügbarmachen von COM-Objekten ist die Verwendung der COM-Klassenvorlage. Diese Vorlage erstellt eine neue Klasse, konfiguriert dann Ihr Projekt, um die Klasse mit einer Interoperabilitätsschicht als COM-Objekt zu generieren und mit dem Betriebssystem zu registrieren.

Hinweis

Sie können zwar auch eine klasse verfügbar machen, die in Visual Basic als COM-Objekt für nicht verwalteten Code erstellt wird, aber es handelt sich nicht um ein echtes COM-Objekt und kann von Visual Basic nicht verwendet werden. Weitere Informationen finden Sie unter COM-Interoperabilität in .NET Framework-Anwendungen.

Hinweis

Auf Ihrem Computer werden möglicherweise unterschiedliche Namen oder Speicherorte für einige der Visual Studio-Benutzeroberflächenelemente in den folgenden Anweisungen angezeigt. Die Visual Studio-Edition, über die Sie verfügen, und die Einstellungen, die Sie verwenden, bestimmen diese Elemente. Weitere Informationen finden Sie unter Personalisierung der IDE.

So erstellen Sie ein COM-Objekt mithilfe der COM-Klassenvorlage

  1. Öffnen Sie im Menü "Datei " ein neues Windows-Anwendungsprojekt, indem Sie auf "Neues Projekt" klicken.

  2. Aktivieren Sie im Dialogfeld "Neues Projekt " unter dem Feld "Projekttypen " die Option "Windows". Wählen Sie in der Liste "Vorlagen" die Option "Klassenbibliothek" aus, und klicken Sie dann auf "OK". Das neue Projekt wird angezeigt.

  3. Wählen Sie im Menü "Projekt" die Option "Neues Element hinzufügen" aus. Das Dialogfeld Neues Element hinzufügen wird angezeigt.

  4. Wählen Sie in der Vorlagenliste DIE COM-Klasse aus, und klicken Sie dann auf "Hinzufügen". Visual Basic fügt eine neue Klasse hinzu und konfiguriert das neue Projekt für die COM-Interoperabilität.

  5. Fügen Sie der COM-Klasse Code wie Eigenschaften, Methoden und Ereignisse hinzu.

  6. Wählen Sie im Menü "Build" die Option "ClassLibrary1 erstellen" aus. Visual Basic erstellt die Assembly und registriert das COM-Objekt mit dem Betriebssystem.

Erstellen von COM-Objekten ohne die COM-Klassenvorlage

Sie können eine COM-Klasse auch manuell erstellen, anstatt die COM-Klassenvorlage zu verwenden. Dieses Verfahren ist hilfreich, wenn Sie über die Befehlszeile arbeiten oder wenn Sie mehr Kontrolle darüber wünschen, wie COM-Objekte definiert werden.

So richten Sie Ihr Projekt ein, um ein COM-Objekt zu generieren

  1. Öffnen Sie ein neues Windows-Anwendungsprojekt im Menü "Datei ", indem Sie auf "Neuprojekt" klicken.

  2. Aktivieren Sie im Dialogfeld "Neues Projekt " unter dem Feld "Projekttypen " die Option "Windows". Wählen Sie in der Liste "Vorlagen" die Option "Klassenbibliothek" aus, und klicken Sie dann auf "OK". Das neue Projekt wird angezeigt.

  3. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf Ihr Projekt, und klicken Sie dann auf "Eigenschaften". Der Projekt-Designer wird angezeigt.

  4. Klicken Sie auf den Tab Kompilieren.

  5. Aktivieren Sie das Kontrollkästchen "Für COM-Interoperabilität registrieren ".

So richten Sie den Code in Ihrer Klasse ein, um ein COM-Objekt zu erstellen

  1. Doppelklicken Sie im Projektmappen-Explorer auf Class1.vb, um den zugehörigen Code anzuzeigen.

  2. Ändern Sie den Namen der Klasse in ComClass1.

  3. Fügen Sie die folgenden Konstanten hinzu:ComClass1 Sie speichern die GUID-Konstanten (Globally Unique Identifier), über die die COM-Objekte verfügen müssen.

    Public Const ClassId As String = ""
    Public Const InterfaceId As String = ""
    Public Const EventsId As String = ""
    
  4. Klicken Sie im Menü Extras auf den Befehl GUID erstellen. Klicken Sie im Dialogfeld GUID erstellen auf "Registrierungsformat" und dann auf "Kopieren". Klicken Sie auf Beenden.

  5. Ersetzen Sie die leere Zeichenfolge für ClassId durch die GUID, und entfernen Sie dabei die führenden und nachgestellten geschweiften Klammern. Wenn beispielsweise die von Guidgen "{2C8B0AEE-02C9-486e-B809-C780A11530FE}" bereitgestellte GUID lautet, sollte der Code wie folgt angezeigt werden.

    Public Const ClassId As String = "2C8B0AEE-02C9-486e-B809-C780A11530FE"
    
  6. Wiederholen Sie die vorherigen Schritte für die Konstanten InterfaceId und EventsId, wie im folgenden Beispiel gezeigt.

    Public Const InterfaceId As String = "3D8B5BA4-FB8C-5ff8-8468-11BF6BD5CF91"
    Public Const EventsId As String = "2B691787-6ED7-401e-90A4-B3B9C0360E31"
    

    Hinweis

    Stellen Sie sicher, dass die GUIDs neu und eindeutig sind; andernfalls könnte Ihre COM-Komponente mit anderen COM-Komponenten in Konflikt treten.

  7. Fügen Sie das Attribut ComClass zu ComClass1 hinzu und geben Sie die GUIDs für die Klassen-ID, Schnittstellen-ID und Ereignis-ID an, wie im folgenden Beispiel.

    <ComClass(ComClass1.ClassId, ComClass1.InterfaceId, ComClass1.EventsId)>
    Public Class ComClass1
    
  8. COM-Klassen müssen über einen parameterlosen Public Sub New() Konstruktor verfügen, oder die Klasse wird nicht ordnungsgemäß registriert. Fügen Sie der Klasse einen parameterlosen Konstruktor hinzu:

    Public Sub New()
        MyBase.New()
    End Sub
    
  9. Fügen Sie der Klasse Eigenschaften, Methoden und Ereignisse hinzu, und beenden Sie sie mit einer End Class Anweisung. Wählen Sie im Menü Build die Option Lösung erstellen aus. Visual Basic erstellt die Assembly und registriert das COM-Objekt mit dem Betriebssystem.

    Hinweis

    Die com-Objekte, die Sie mit Visual Basic generieren, können von anderen Visual Basic-Anwendungen nicht verwendet werden, da sie keine echten COM-Objekte sind. Versuche, Verweise auf solche COM-Objekte hinzuzufügen, lösen einen Fehler aus. Ausführliche Informationen finden Sie unter COM-Interoperabilität in .NET Framework-Anwendungen.

Siehe auch