Часть моей повседневной работы - обслуживание и расширение устаревших приложений VB6. Общий движок написан на C / C ++, и VB6 использует эти функции для повышения производительности.
Когда дело доходит до асинхронного программирования, интерфейса C недостаточно, и мы полагаемся на элементы управления COM для передачи событий в VB6.
Моя проблема в том, что когда я регистрирую элемент управления в VB6, VB загружает этот элемент управления в память и не выгружает его, пока я не выйду из среды VB6. Поскольку элемент управления загружен все время, я не могу перекомпилировать его в VC6, поскольку файл DLL заблокирован.
Решение, которое я нашел, состоит не в том, чтобы включить элемент управления в VB, а в использовании CreateObject()
с полным именем моего элемента управления. Проблема в том, что я должен объявить свой элемент управления как объект, потому что VB6 ничего не знает об используемом мной интерфейсе, и у меня нет доступа к IntelliSense, что является болью.
Есть идеи, как я могу сказать VB6 выгружать элементы управления после выхода из приложения или непосредственно в IDE?