Разтоварете 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
източник