Lossen een COM-controle bij het werken in VB6 IDE

stemmen
31

Een deel van mijn dagelijkse werk wordt onderhouden en uitbreiden van legacy VB6 toepassingen. Een gemeenschappelijke motor is geschreven in C / C ++ en Visual Basic 6 gebruikt deze functies om de prestaties te verbeteren.

Als het gaat om asynchrone programmering, een C-interface is niet genoeg en we vertrouwen op COM beheersmaatregelen om gebeurtenissen te VB6 vuren.

Mijn probleem is dat wanneer ik de controle in VB6 registreren, VB laadt deze controle in het geheugen en maakt het niet uit te laden totdat ik de VB6 IDE stoppen. Als de controle van de hele tijd wordt geladen, ik ben niet in staat om het opnieuw te compileren in VC6, omdat het DLL-bestand is vergrendeld.

Een oplossing die ik gevonden is de controle in VB niet in te schakelen, maar gebruik maken van de CreateObject()met de volledige naam van mijn controle. Het probleem is dan dat ik mijn controle moet verklaren als een object, omdat VB6 weet niets van de interface Ik gebruik en ik heb geen toegang tot IntelliSense, dat is een pijn te hebben.

Enig idee hoe ik VB6 kan vertellen om controles uit te laden na het verlaten van het verzoek, hetzij direct in de IDE?

De vraag is gesteld op 02/08/2008 om 12:52
bron van user
In andere talen...                            


1 antwoorden

stemmen
27

Ik ben er vrij zeker dat er geen goede manier om VB6 dwingen om de controle uit te laden.

Hier is wat ik doe ... in plaats van het runnen van Visual C en Visual Basic side-by-side, lopen VB6 onder VC:

  1. Laad VC
  2. Open het project met uw COM-objecten
  3. Bewerken, verandering, etc.
  4. In VC, stel de Output uitvoerbaar VB6.EXE zijn met de juiste command-line argumenten om de VB6 load workspace
  5. Nu gewoon op F5 om de VB6 IDE te starten en uw VB6 project te laden
  6. Wanneer u de COM-code weer te veranderen, afrit VB6.EXE, breng uw wijzigingen aan, en weer op F5. Zolang je bespaart u uw werkruimte VB6 wat vensters die u had geopend en al uw project instellingen onthoudt.

Voordelen van deze methode:

  • U kunt breekpunten in het COM-object en debuggen met behulp van een volledige source debugger
  • U kunt gelukkig debuggen in C en VB op hetzelfde moment
  • Wanneer VB6 loopt het heeft altijd de nieuwste versie van de COM-DLL
antwoordde op 20/08/2008 om 04:58
bron van user

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more