Entladen Sie ein COM-Steuerelement, wenn Sie in VB6 IDE arbeiten

Translate

Ein Teil meiner täglichen Arbeit besteht darin, ältere VB6-Anwendungen zu warten und zu erweitern. Eine gemeinsame Engine ist in C / C ++ geschrieben und VB6 verwendet diese Funktionen, um die Leistung zu verbessern.

Wenn es um asynchrone Programmierung geht, reicht eine C-Schnittstelle nicht aus, und wir verlassen uns auf COM-Steuerelemente, um Ereignisse auf VB6 auszulösen.

Mein Problem ist, dass VB, wenn ich das Steuerelement in VB6 registriere, dieses Steuerelement in den Speicher lädt und es erst entlädt, wenn ich die VB6-IDE beende. Da das Steuerelement die ganze Zeit geladen ist, kann ich es in VC6 nicht neu kompilieren, da die DLL-Datei gesperrt ist.

Eine Lösung, die ich gefunden habe, besteht nicht darin, die Steuerung in VB zu aktivieren, sondern die zu verwendenCreateObject()mit dem vollen Namen meiner Kontrolle. Das Problem ist dann, dass ich mein Steuerelement als Objekt deklarieren muss, da VB6 nichts von der von mir verwendeten Schnittstelle weiß und ich keinen Zugriff auf IntelliSense habe, was sehr schmerzhaft ist.

Haben Sie eine Idee, wie ich VB6 anweisen kann, Steuerelemente nach dem Beenden der Anwendung oder direkt in der IDE zu entladen?

This question and all comments follow the "Attribution Required."

Alle Antworten

Translate

Ich bin mir ziemlich sicher, dass es keinen guten Weg gibt, VB6 zum Entladen der Steuerung zu zwingen.

Folgendes mache ich ... Anstatt Visual C und Visual Basic nebeneinander auszuführen, führen Sie VB6 ausunterVC:

  1. Laden Sie VC
  2. Öffnen Sie das Projekt mit Ihren COM-Objekten
  3. Bearbeiten, ändern usw.
  4. Setzen Sie in VC die ausführbare Ausgabe auf VB6.EXE mit den entsprechenden Befehlszeilenargumenten, um den VB6-Arbeitsbereich zu laden
  5. Drücken Sie jetzt einfach F5, um die VB6-IDE zu starten und Ihr VB6-Projekt zu laden
  6. Wenn Sie den COM-Code erneut ändern möchten, beenden Sie VB6.EXE, nehmen Sie Ihre Änderungen vor und drücken Sie erneut F5. Solange Sie Ihren Arbeitsbereich speichern, merkt sich VB6, welche Fenster Sie geöffnet haben und welche Projekteinstellungen Sie vorgenommen haben.

Vorteile dieser Methode:

  • Sie können Haltepunkte im COM-Objekt festlegen und mit einem vollständigen Quelldebugger debuggen
  • Sie können problemlos gleichzeitig in C und VB debuggen
  • Wenn VB6 ausgeführt wird, verfügt es immer über die neueste Version der COM-DLLs
Quelle