Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.07.11;
Скачать: CL | DM;

Вниз

Версии интерфейсов   Найти похожие ветки 

 
k_il   (2004-09-13 18:18) [0]

Есть библиотека с СОМ обьектом и интрфейсами, каждый интерфейс имеет атрибут версия... Как в ехе-шнике который использует эту библиотеку узнать версию интерфейса.

Спасибо


 
Cobalt ©   (2004-09-13 23:42) [1]

Предложения:
1) Административно обеспечить наличие последней версии интерфейса на каждом месте установленного ПО
2) Таки есть атрибут? (точнее, это должен быть метод, который возвращает версию)

Встречный вопрос - а какого фига там различия от версии к версии? Поддержка нескольких версий интерфейсов - не лучшее решение.


 
k_il   (2004-09-14 11:08) [2]

Спасибо за ответ...
Различия от версии к версии получились из-за того, что появилась
необходимость добавить в один из интерфейсов метод, которого небыло в старой версии библиотеки. Причом старая версия долыжна
корректно работать с ехе-шником. Поэтому первой идеей была проверка версий интерфейсов, но сейчас мне кажеться что лучше написать новый интерфейс который бы возвращал версию не интерфейсов а самой библиотеки, а в ехе-шнике написать проверки...


 
Romkin ©   (2004-09-14 11:29) [3]

Есть в СОМ договоренность - изменения интерфейсов, которые опубликованы, не допускаются. Делается расширенный второй интерфейс. Пример: IClassFactory & IClassFactory2 :)
Старые клиенты работают со старой версией, новые - с новой. При этом кокласс просто реализует оба интерфейса
Причем даже есть механизм, который подменяет ClassID, чтобы старые клиенты, заказывая старый класс, работали с новым коклассом, и не догадывались об этом :)


 
Romkin ©   (2004-09-14 11:32) [4]

Версию же библиотеки типов и интерфейсов в ней достать легко, см ITypeLib и IDispatch.GetTypeInfo


 
k_il ©   (2004-09-14 20:33) [5]

Большое спасибо... создал расширенный интерфейс.



Страницы: 1 вся ветка

Текущий архив: 2005.07.11;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.027 c
3-1117356716
_RusLAN
2005-05-29 12:51
2005.07.11
Firebird Embedded 1.5. Не могу подключиться.


6-1111961987
Змей
2005-03-28 02:19
2005.07.11
Socket Connect в домашних условиях :)


4-1116235680
СМА
2005-05-16 13:28
2005.07.11
СОМ порт под WIN_XP


3-1117289982
Sido_delfi
2005-05-28 18:19
2005.07.11
Перекачка из текстового файла на таблицы Interbase


1-1118568996
xenos
2005-06-12 13:36
2005.07.11
Как зашить ехе внутрь другого exe?