Главная страница
    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.46 MB
Время: 0.009 c
3-3768
KDS
2003-09-11 18:15
2003.10.02
SUBSTR и сложение строк в SQL


14-4124
malkolinge
2003-09-12 18:15
2003.10.02
Вот такое бывает ????


3-3715
Vadim
2003-09-13 19:29
2003.10.02
Что вместо BDE?


9-3702
Agent[007]
2003-03-18 14:48
2003.10.02
Упаковка


1-3992
GhostDog
2003-09-11 20:42
2003.10.02
Фильтры





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский