Częścią mojej codziennej pracy jest utrzymywanie i rozszerzanie starszych aplikacji VB6. Wspólny silnik jest napisany w języku C/C++, a VB6 używa tych funkcji w celu poprawy wydajności.Wyładowanie elementu sterującego COM podczas pracy w VB6 IDE
Jeśli chodzi o programowanie asynchroniczne, interfejs C jest niewystarczający i polegamy na elementach sterujących COM, które wysyłają zdarzenia do VB6.
Mój problem polega na tym, że gdy rejestruję kontrolkę w VB6, VB ładuje tę kontrolkę do pamięci i nie rozładowuje jej dopóki nie zakończę pracy IDE VB6. Ponieważ kontrola jest ładowana przez cały czas, nie jestem w stanie przekompilować jej w VC6, ponieważ plik DLL jest zablokowany.
Rozwiązaniem, które znalazłem nie jest włączenie kontrolki w VB, ale użycie CreateObject()
z pełną nazwą kontrolki. Problem polega na tym, że muszę zadeklarować moją kontrolę jako Obiekt, ponieważ VB6 nie wie nic o interfejsie, którego używam, i nie mam dostępu do IntelliSense, co jest uciążliwe.
Każdy pomysł, w jaki sposób mogę nakazać VB6 zwolnienie kontroli po zamknięciu aplikacji lub bezpośrednio w IDE?
To bardzo sprytne, postaram się to zrobić. Teraz zastanawiam się, czy moje stare konto oparte na plikach cookie może zostać połączone z moim nowym kontem opartym na OpenId, więc mogę oznaczyć tę odpowiedź jako odpowiedź ... –
Działa to również z innymi IDE niż VB. Udało mi się to zrobić z Delphi/VB6. –