Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.10.02;
Скачать: [xml.tar.bz2];

Вниз

Type Library   Найти похожие ветки 

 
Mantor   (2003-09-19 13:44) [0]

Привет all.
В D5 создаю subj, соответственно там написан COM объект который реализует интерфейс, например I1. И в одном из методов, в качестве параметра, используется другой интерфейс, пусть будет I2. Должен ли I2 содержаться в данном subj"е. И как быть потом, если я создам другой subj, который то же использует интерфейс I2?
I2 добалять в каждый subj, в котором он используется?
Всем кто ответил, спасибо.


 
icWasya   (2003-09-19 14:22) [1]

В редакторе TLB
1) выбрать в левой части самый верхний узел - саму Library
2) в правой части должна появиться форма с закладками Attributes, Uses, Flags и Text
3) выбери закладку Uses
4) должен появиться список используемых TypeLibrary
5) на списке нажми правую кнопку мыши
6) должно прявиться меню View Type Library / Show All Type Libraries
7) выбери пункт Show All Type Libraries
8) появится список всех зарегистрированных Type Libraries
9) отметь галочкой ту библиотеку, которая содержит интерфейс I2
10) на списке нажми правую кнопку мыши
11) должно прявиться меню View Type Library / Show Selected
12) выбери пункт Show Selected

кажись всё


 
Mantor   (2003-09-19 16:41) [2]

2 icWasya
Спасибо.

Но это не совсем то, что меня интересует.
Если я устанавливаю клиенту приложение, в котором может использует две dll-ки и в которых используется интерфейс I2. И заранее точно не известно какая dll-ка окажется у пользователя первой.

Или вот ещё какая ситуация.
1. Создаю базовый интерфейс IBased.
2. Создаю одну DLL, в ней создаю интерфейс I1, который наследует IBased и класс который реализует I1, ну и соответственно IBased. 3. Создаю вторую DLL, в ней создаю интерфейс I2, который наследует IBased и класс который реализует I2, ну и соответственно IBased.
4. Пишу приложение которое работает с COM объектом через интерфейс IBased, I1, I2 и соответственно будет использовать либо DLL1, либо DLL2, а может и обе одновременно.

Вопрос: где и как в таком случае размещать описание IBased? В обоих библиотеках или может это должна быть отдельная DLL, содержащая только описание интерфейса.


 
nikkie   (2003-09-19 16:57) [3]

COM прекрасно может работать и без type library. разработчику достаточно декларации интерфейса в виде хедер-файла. есть MS-интерфейсы, которые задекларированы именно так, без typelib. но с type library - оно правильнее, имхо, поскольку COM - межъязыковая вещь и каждое COM-enabled средство сможет вытащить нужную декларацию из typelib.

на твоем месте я бы может сделал декларацию всех интерфейсов в отдельном tlb-файле, а реализацию классов - в dll со ссылкой на tlb.


 
icWasya   (2003-09-19 17:19) [4]

to Mantor (19.09.03 16:41) [2]
>> ... И заранее точно не известно ...
ну тут решать тебе
клиенту важно, что бы у него было описание интерфейса, а как оно появится - дело разработчика. либо в виде хедер-файла, либо в виде отдельной TLB, либо будет запихнуто во все DLL, которые используют этот интерфейс.


 
Mantor   (2003-09-19 17:34) [5]

Всё, я решил. Делаю отдельную DLL, где в TypeLibrary будет только описание базового интерфейса. А остальные будут его юзать.



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

Форум: "Основная";
Текущий архив: 2003.10.02;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.008 c
3-3722
yaric
2003-09-12 18:33
2003.10.02
Проверка конекта к серверу


3-3733
Мария В.
2003-09-12 14:16
2003.10.02
Поиск ODBC DSN


1-3981
_FreeMan_
2003-09-13 20:45
2003.10.02
Программа инсталляции


1-3950
Denkop
2003-09-22 14:28
2003.10.02
RTF >> HTML


4-4171
Unknown user
2003-07-30 18:49
2003.10.02
Как создать DIB?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский