Uvolnit ovládací prvek COM při práci v VB6 IDE

hlasů
31

Část mé každodenní práce je udržování a rozšiřování dědictví VB6 aplikace. Běžným motor je napsán v jazyce C / C ++ a VB6 používá tyto funkce za účelem zlepšení výkonu.

Pokud jde o asynchronní programování, C rozhraní není dost, a spoléháme na COM ovládá ke střelbě události do VB6.

Můj problém je, že když jsem se zaregistrovat ovládací prvek v VB6, VB načte tato kontrola v paměti a neuvolní, dokud jsem opustil VB6 IDE. Jako ovládací prvek je vložen po celou dobu, nemohu ji překompilovat v VC6, protože DLL soubor je uzamčen.

Řešení jsem našel není umožnit kontrolu ve VB, ale použít CreateObject()s plným jménem mé kontrole. Problém pak je, že musím prohlásit svou kontrolu jako objekt, protože VB6 neví nic o rozhraní I am using a nemám přístup k IntelliSense, což je bolest.

Nějaký nápad, jak mohu říci VB6 vyložit kontrol po ukončení aplikace nebo přímo v IDE?

Položena 02/08/2008 v 12:52
zdroj uživatelem
V jiných jazycích...                            


1 odpovědí

hlasů
27

Jsem si docela jistý, že to není dobrý způsob, jak přinutit VB6 vyložit kontrolu.

Tady je to, co mám dělat ... namísto spuštění Visual C a Visual Basic side-by-side, běh VB6 pod VC:

  1. Naložit VC
  2. Otevřete projekt obsahující vaše objekty COM
  3. Úpravy, změny, atd.
  4. VC, nastavit výstupní spustitelný být VB6.EXE s příslušnými argumenty příkazového řádku k načtení pracovního prostoru VB6
  5. Nyní stačí kliknout na F5 spustit VB6 IDE a načíst VB6 projekt
  6. Pokud chcete opět změnit kód COM, exit VB6.EXE, proveďte změny a stiskněte F5 znovu. Tak dlouho, jak ušetřit váš pracovní prostor VB6 budou pamatovat, co windows jste měli otevřené a všechna nastavení projektu.

Výhody této metody:

  • Můžete nastavit zarážky v objektu COM a ladit jej pomocí kompletní zdrojový debugger
  • Můžete šťastně ladění v jazyce C a VB zároveň
  • Kdykoli je to běh VB6 má vždy nejnovější verzi COM DLL
Odpovězeno 20/08/2008 v 04:58
zdroj uživatelem

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