Generieren einer COM-Interop-Komponente aus einer einfachen C#-DLL für die VB6-Nutzung
Hintergrund
Die Integration von C#-Code in ältere VB6-Anwendungen erfordert oft die Offenlegung von C# Funktionalität als COM-Interop-Komponente. Dadurch können VB6-Programme auf die C#-Objekte und -Methoden zugreifen und diese nutzen.
Lösung
Erstellen der C#-DLL
- Erstellen Sie eine C#-Klasse Bibliotheksprojekt.
- Definieren Sie eine Schnittstelle für die gewünschten Eigenschaften/Methoden und eine andere Schnittstelle für Ereignisse.
- Weisen Sie der Klasse und den Schnittstellen GUID-Attribute zu, wie in MSDN angegeben.
- Aktivieren Sie die COM-Sichtbarkeit, indem Sie in den Projekteigenschaften > „Assembly COM-sichtbar machen“ aktivieren. Bewerbung > Assembly-Informationen.
- Setzen Sie „Plattformziel“ in den Projekteigenschaften auf x86. > Erstellen.
Registrieren der DLL
Entwicklungsmaschine
- Registrieren Sie die DLL während des Builds durch Überprüfung „Für COM Interop registrieren“ in den Projekteigenschaften > Erstellen.
-
Manuelle Registrierung mit RegAsm über eine Administrator-Befehlsshell:
- RegAsm.exe -tlb -codebase mydll.dll
VB6 Anwendung
- Fügen Sie einen Verweis auf die registrierte COM-DLL in VB6 hinzu.
- Verwenden Sie Intellisense, um auf die bereitgestellten Objekte und Methoden zuzugreifen und diese zu nutzen.
Installer-Integration (mit InstallShield)
- Erstellen Sie eine Komponente in InstallShield, verknüpfen Sie sie mit einem Feature und aktivieren Sie „.NET COM Interop“.
- Fügen Sie die DLL-Datei zur Komponente hinzu und markieren Sie sie Legen Sie es als Schlüsseldatei fest und deaktivieren Sie „Selbstregistrierung“.
- Fügen Sie die TLB-Datei zur Komponente hinzu und aktivieren Sie sie „Selbstregistrierung.“
- Stellen Sie sicher, dass auf dem Zielcomputer das entsprechende .NET Framework installiert ist.
Das obige ist der detaillierte Inhalt vonWie kann ich eine COM-Interop-Komponente aus einer C#-DLL zur Verwendung in VB6 erstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!