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

Вниз

Сервер COM (.EXE)   Найти похожие ветки 

 
Deltas ©   (2009-02-02 21:07) [0]

Каким образом клиенты COM могут обращаться к серверу COM, который представляет собой исполнимый файл EXE? Сервер COM содержит один класс объектов, реализующий один интерфейс COM. В случае с библиотекой DLL, после ее регистрации в системном реестре, COM интерфейсы становятся доступны клиентским приложениям, и проблем не возникает...


 
Amoeba ©   (2009-02-02 21:31) [1]

http://www.podgoretsky.com/ddp/OtherDDP.aspx
Delphi и COM. Анатолий Тенцер


 
sniknik ©   (2009-02-02 21:58) [2]

> В случае с библиотекой DLL, после ее регистрации в системном реестре
exe тоже регистрируется в реестре, и еще проще чем dll, одноразовым запуской на выполнение

>  COM интерфейсы становятся доступны клиентским приложениям, и проблем не возникает...
собственно, аналогично...


 
Сергей М. ©   (2009-02-03 08:27) [3]


> Deltas ©   (02.02.09 21:07)  


Какие конкретно проблемы возникают у тебя с Out-of-Proc-сервером ?


 
Palladin ©   (2009-02-03 12:02) [4]


> Deltas ©   (02.02.09 21:07) 

А все жирным шрифтом выделять - это было обязательно?


 
Григорьев Антон ©   (2009-02-03 14:46) [5]


> sniknik ©   (02.02.09 21:58) [2]
> exe тоже регистрируется в реестре, и еще проще чем dll,
> одноразовым запуской на выполнение

Не всякий сервер, это уже отсебятина разработчиков Delphi - регистрировать сервер при каждом запуске. А написанный строго по стандарту сервер при обычном запуске в реестр не лезет, а регистрирует себя только если он запущен с параметром /regserver в командной строке. Если у автора сервер, написанный не на Delphi/CBuilder, то простой запуск его не зарегистрирует.


 
Deltas ©   (2009-02-03 16:14) [6]


> Какие конкретно проблемы возникают у тебя с Out-of-Proc-
> сервером ?

Есть один непонятный момент. Если сервер COM (.EXE) не запущен непосредственно, то при запуске клиента COM и обращении к интерфейсу COM, сервер COM запускается автоматически. Откуда Windows знает, какой именно исполнимый файл запускать, если в реестре хранится только идентификатор класса вызываемого COM объекта? Или не только?


 
Сергей М. ©   (2009-02-03 17:03) [7]


> Или не только?


Именно "не только".
В процессе регистрации сервера в реестре создаются в т.ч. записи, связывающие Имя/CLSID сервера с точным месторасположением файла, в котором реализована его фабрика класса.


 
Сергей М. ©   (2009-02-03 17:07) [8]


> Deltas


И это касается не только Out-of-proc-серверов, но и InProc-серверов тоже.


 
Loginov Dmitry ©   (2009-02-05 22:23) [9]

> Если у автора сервер, написанный не на Delphi/CBuilder,
> то простой запуск его не зарегистрирует


Даже сервер, написанный на D2007, регистрировать ничего не станет.


 
имя   (2009-02-18 08:06) [10]

Удалено модератором



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

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

Наверх




Память: 0.46 MB
Время: 0.005 c
15-1258976801
Insor
2009-11-23 14:46
2010.01.31
Сайт для поиска работы программистом


15-1258115227
_
2009-11-13 15:27
2010.01.31
Избавиться от назойливой рекламы.


4-1227704906
Mamed
2008-11-26 16:08
2010.01.31
Load Fond


1-1234792182
@!!ex
2009-02-16 16:49
2010.01.31
Храним HDC окна. Плохо?


15-1259084165
Anatoly Podgoretsky
2009-11-24 20:36
2010.01.31
Анонс статьи





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