Шаг 19 - Версии COM DLL

Мы можем несколько раз заново собирать компоненты внося изменения или расширяя функциональность. Как будет вести себя компонент при генерации новой DLL зависит от установок проекта, которые Вы можете найти зайдя в меню Project properties и выбрав вкладку Component:

gif/19_1.gif (3906 b)

No Compatibility - каждый раз генерируется совершенно новая версия DLL в плане CLSID и IID, а также библиотека типов. Как вывод отсюда - данным компонентом может пользоваться клиент и ни какой модернизации этот компонент дальше не подвергается, иначе придется собирать заново клиента. При этом даже нет возможности исправить ошибку, так как в проверочном проекте придется заново обновлять ссылки.

Project Compatibility - данная совместимость удобна при создании и тестировании компонента. Cовместимость поддерживается на уровне проекта. То есть нет необходимости постоянно обновлять ссылки на проект с COM.

Binary Compatibility - позволяет безболезненно править проект. CLSID и IID не меняется, поэтому ссылки обновлять не надо. Но есть одно но. Все это до тех пор пока Вы не захотите удалить методы или поменять в нем параметры. Вот тут-то вся совместимость и закончится. Но зато в данном варианте не нужно собирать клиента заново. Допустим вы обнаружили ошибку в методе DLL, и решили ее исправить. Применение подобной совместимости приведет к тому, что клиент спокойно продолжит работу с обновленной компонентой.


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем.