У нас есть несколько проектов на VB 6.0. Большинство этих проектов являются библиотеками ActiveX DLL. При разработке проекты берут ссылку «.dll» других проектов, но это не позволяет нам отлаживать. Итак, для этого нам нужно взять ссылку на проект .vbp. Однако ссылка на проект означает, что нас просят обеспечить двоичную совместимость.
Следует ли во время разработки использовать совместимость проектов и встраивать проекты в библиотеки DLL для развертывания?





Можно ссылаться на vbp во время разработки, просто убедитесь, что вы сохраняете двоичную совместимость. Если вы этого не сделаете, вы превратите реестр в беспорядок, и развертывание будет катастрофой. Однако имейте в виду, что даже при включенной двоичной совместимости каждый раз, когда вы меняете публичный интерфейс DLL, вы создаете прямую ссылку в записи OLE в реестре.
у нас есть четыре уровня DLLS в программном обеспечении CAD / CAM, которое мы используем для режущих машин моей компании. Мы справились с этим, создав каталог совместимости с библиотеками DLL ПРЕДЫДУЩЕЙ версии. При этом мы можем продолжать использовать двоичную совместимость.
Процесс выглядит так.
Основная проблема, на которую вам нужно обратить внимание, - это изменения самого нижнего уровня используемых вами библиотек DLL. Visual Basic 6 использует инструкцию #include при создании своих внутренних библиотек типов. Придется запутать его, является ли он по-прежнему двоично-совместимым или нет. Обратите внимание, что вы можете увидеть это с помощью инструмента OLE View, который поставляется с Visual Studio 6.
Решение этой проблемы - скомпилировать низкоуровневую DLL и сразу же поместить ее в каталог совместимости. Полученные внутренние библиотеки типов для библиотек DLL более высокого уровня теперь будут правильно определять, совместимы ли вы с двоичным кодом или нет.
Помните, что двоичная совместимость означает, что все, что вы можете сделать, это добавить метод или свойство. Вы не можете изменить имя существующего метода или список аргументов. (это подпись в терминах COM)
Вы должны иметь возможность отлаживать ссылки на dll. Правильно ли вы начали проекты? Или вы можете добавить все / некоторые dll в одну и ту же «группу проектов» (* .vbg).