Подтвердить что ты не робот

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

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

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

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

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

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

4b9b3361

Ответ 1

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

Вот что я делаю... вместо того, чтобы запускать Visual C и Visual Basic бок о бок, запустите VB6 под VC:

  • Загрузка VC
  • Откройте проект, содержащий ваши COM-объекты.
  • Изменить, изменить и т.д.
  • В VC установите Output Executable как VB6.EXE с соответствующими аргументами командной строки для загрузки рабочей области VB6
  • Теперь просто нажмите F5, чтобы запустить VB6 IDE и загрузить проект VB6.
  • Если вы хотите снова изменить код COM, выйдите из VB6.EXE, внесите изменения и снова нажмите F5. Пока вы сохраняете свое рабочее пространство, VB6 помнит, какие окна были открыты и все ваши настройки проекта.

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

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