Выгрузите элемент управления COM при работе в VB6 IDE

Translate

Часть моей повседневной работы - это поддержка и расширение устаревших приложений VB6. Общий движок написан на C / C ++, и VB6 использует эти функции для повышения производительности.

Когда дело доходит до асинхронного программирования, интерфейса C недостаточно, и мы полагаемся на элементы управления COM для передачи событий в VB6.

Моя проблема в том, что когда я регистрирую элемент управления в VB6, VB загружает этот элемент управления в память и не выгружает его, пока я не выйду из VB6 IDE. Поскольку элемент управления загружается все время, я не могу перекомпилировать его в VC6, потому что файл DLL заблокирован.

Я нашел решение не включать элемент управления в VB, а использоватьCreateObject()с полным именем моего контроля. Проблема в том, что я должен объявить свой элемент управления как объект, потому что VB6 ничего не знает об интерфейсе, который я использую, и у меня нет доступа к IntelliSense, что очень неприятно.

Любая идея, как я могу сказать VB6 выгрузить элементы управления после выхода из приложения или непосредственно в среде IDE?

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

Все ответы

Translate

Я почти уверен, что нет хорошего способа заставить VB6 выгрузить управление.

Вот что я делаю ... вместо одновременного запуска Visual C и Visual Basic запустите VB6подВК:

  1. Загрузите VC
  2. Откройте проект, содержащий ваши COM-объекты
  3. Редактировать, изменять и т. Д.
  4. В VC установите для выходного исполняемого файла VB6.EXE с соответствующими аргументами командной строки для загрузки рабочего пространства VB6.
  5. Теперь просто нажмите F5, чтобы запустить VB6 IDE и загрузить свой проект VB6.
  6. Если вы снова захотите изменить код COM, выйдите из VB6.EXE, внесите изменения и снова нажмите F5. Пока вы сохраняете рабочее пространство, VB6 будет помнить, какие окна вы открывали, и все настройки вашего проекта.

Преимущества этого метода:

  • Вы можете установить точки останова в COM-объекте и отладить его с помощью отладчика полного исходного кода.
  • Вы можете с удовольствием отлаживать одновременно на C и VB
  • Всякий раз, когда VB6 работает, он всегда имеет последнюю версию COM DLL.
Источник