C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 93 - Разница удаленного COM EXE и COM DLL / ActiveX по шагам / Приложение

Шаг 93 - Разница удаленного COM EXE и COM DLL

Мы уже с Вами разговаривали о нем в шаге "Шаг 43 - Как грузится COM (SCM) ?". И знаем что он этот SCM реализует доступ к информации об объекте. Так же он используется и в DCOM. Под контекстом выполнения можно понимать как место где выполняется приложение. Всего их четыре.

CLSCTX_INPROC_SERVER            DLL в адресном пространстве клиента
CLSCTX_INPROC_HANDLER           Дескриптор DLL
CLSCTX_LOCAL_SERVER             EXE выполняемый на машине клиенте
CLSCTX_REMOTE_SERVER    	EXE выполняется на машине отличной от клиента

С ЕХЕ файлами понятно, они умеют создавать процесс, а вот как поступать с DLL веть он может работать только в чьем-то процессе. Это то же предусмотрено. SCM запускает на удаленной машине некоторый свой процесс как псевдо COM сервер. Этот процесс по умолчанию запускается на основе файла dllhost.exe. При необходимости можно реализовать и свой процесс.

93_1.gif (1121 b)

Еще один необходимый для DCOM файл RPCSS.exe. DCOM требует, чтобы RPCSS был загружен, прежде чем он начнет обрабатывать запросы . Вы можете сами его запустить, поместить в автозагрузку или прописать по пути в реестре для автоматической загрузки. Естественно если по каким то причинам он у Вас не вызывается автоматически.

HKLM\Software\Microsoft\Windows\CurrentVersion\RunServices 
 					RPCSS="rpcss.exe"

Создание и использование DCOM на основе COM DLL несколько сложнее чем на основе COM EXE. В том виде в котором мы это реализовывали. Вывод отсюда простой. Если Вы хотите использовать DCOM максимально просто используйте COM EXE. А вот если в перспективе Вы захотите использовать MTS то выбор у Вас один это COM DLL.


| |
Автор Каев Артем.
[AD]