VB6 Проектные ссылки - PullRequest
       4

VB6 Проектные ссылки

1 голос
/ 12 октября 2011

У меня есть 3 проекта .vbp, которые являются частью группы.

Я могу сделать dll из 3 и 2, и когда я хотел сделать dll из 1.

Я устанавливаю ссылку на проект 1 на правильную DLL проекта 2.

Однако, когда я сохраняю изменения и заново открываю файл vbg. Ссылка, которую я изменил, не отображается, и она возвращается к другой версии библиотеки DLL.

Я не работал в COM и не могу двигаться вперед. Любой вклад или поддержка высоко ценится.

Ответы [ 2 ]

7 голосов
/ 12 октября 2011

Когда вы ссылаетесь на ActiveX или COM DLL-файлы и EXE-файлы, вы практически не контролируете, какой DLL-файл или EXE-файл фактически используется, потому что VB6 работает строго из GUID и реестра Windows. Ключ к работе с VB6 и ActiveX, а также к сохранению здравомыслия - это понимание двоичной совместимости. (См. http://www.vbsight.com/BinaryComp.htm).

Вот мой совет относительно проектов ActiveX / COM (будь то EXE, DLL или OCX):

(1) Подробнее о настройках двоичной совместимости.

(2) Хорошей практикой является добавление суффикса к эталонному исполняемому файлу с расширением .cmp, например Project1.dll.cmp. Когда вы посмотрите на двоичную совместимость, вы поймете, что я имею в виду.

(3) Разрабатывайте проекты VB6 ActiveX внутри VirtualPC; Разработка VB6 ActiveX сильно изнашивает реестр Windows.

(4) Путь к файлу к DLL / EXE / OCX в настройке Reference = изменится, когда у VB будет причина для обнаружения объекта ActiveX; это пойдет с тем, что он найдет в реестре (выигрывает последний, зарегистрировавшийся). Также есть «Обновить элементы управления ActiveX», устанавливающие свойства проекта, которые могут вносить изменения.

(5) У вас практически нет контроля над GUID или библиотекой типов, которые генерирует VB6, за исключением той степени, которую вы можете достичь с помощью надлежащего управления двоичной совместимостью.

1 голос
/ 27 января 2014

Если вы используете опцию Binary Compatibility для библиотек DLL / OCX, которые вы компилируете в VB6, ссылки в существующих проектах VB6 прерываются после перекомпиляции вашего материала.Мы много раз занимались этой «проблемой», поэтому мы внедрили нашу утилиту обновления ссылок на проекты VB6 , чтобы автоматически заменять ссылки на ActiveX в существующих проектах .vbp.Утилита бесплатная и с открытым исходным кодом, и, скорее всего, она сэкономит много времени другим в подобных ситуациях.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...