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





Я почти уверен, что нет хорошего способа заставить VB6 выгрузить управление.
Вот что я делаю ... вместо одновременного запуска Visual C и Visual Basic, запустите VB6 под VC:
Преимущества этого метода:
Это также работает с другими IDE, кроме VB. Я успешно сделал это с помощью Delphi / VB6.
Это очень умно, я постараюсь это сделать. Теперь мне интересно, можно ли объединить мою старую учетную запись на основе файлов cookie с моей новой учетной записью на основе OpenId, чтобы я мог отметить этот ответ как ответ ...