Při práci ve VB6 IDE uvolněte ovládací prvek COM

Translate

Součástí mé každodenní práce je údržba a rozšiřování starších aplikací VB6. Běžný engine je napsán v C / C ++ a VB6 používá tyto funkce ke zlepšení výkonu.

Pokud jde o asynchronní programování, rozhraní C nestačí a spoléháme se na to, že ovládací prvky COM budou spouštět události na VB6.

Můj problém je, že když zaregistruji ovládací prvek ve VB6, VB načte tento ovládací prvek do paměti a nevyloží ho, dokud neopustím ID VB6. Protože je ovládací prvek načten po celou dobu, nemohu jej znovu zkompilovat ve VC6, protože soubor DLL je uzamčen.

Řešení, které jsem našel, není povolit ovládání ve VB, ale použítCreateObject()s celým názvem mé kontroly. Problém pak spočívá v tom, že musím deklarovat svou kontrolu jako Object, protože VB6 neví nic o rozhraní, které používám, a nemám přístup k IntelliSense, což je bolest.

Nějaký nápad, jak mohu říct VB6, aby uvolnil ovládací prvky po ukončení aplikace nebo přímo v IDE?

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

Všechny odpovědi

Translate

Jsem si docela jistý, že neexistuje dobrý způsob, jak přinutit VB6 uvolnit ovládání.

Tady je to, co dělám ... namísto spuštění Visual C a Visual Basic vedle sebe spusťte VB6podVC:

  1. Načíst VC
  2. Otevřete projekt obsahující vaše objekty COM
  3. Upravit, změnit atd.
  4. Ve VC nastavte výstupní spustitelný soubor na VB6.EXE s příslušnými argumenty příkazového řádku pro načtení pracovního prostoru VB6
  5. Nyní stačí stisknout klávesu F5 a spustit VB6 IDE a načíst váš projekt VB6
  6. Chcete-li znovu změnit kód COM, ukončete soubor VB6.EXE, proveďte změny a stiskněte znovu klávesu F5. Dokud uložíte svůj pracovní prostor, bude si VB6 pamatovat, jaká okna jste měli otevřená, a všechna vaše nastavení projektu.

Výhody této metody:

  • V objektu COM můžete nastavit zarážky a ladit jej pomocí ladicího programu s úplným zdrojem
  • Můžete šťastně ladit v C a VB současně
  • Kdykoli běží VB6, má vždy nejnovější verzi COM DLL
Zdroj