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

StackOverflow https://stackoverflow.com/questions/419

  •  08-06-2019
  •  | 
  •  

Вопрос

Часть моей повседневной работы — поддержка и расширение устаревших приложений 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. под ВК:

  1. Загрузите ВК
  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.
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top