WWW.ИСХОДНИКИ.РУ cpp.sources.ru
java.sources.ru web.sources.ru soft.sources.ru
jdbc.sources.ru asp.sources.ru api.sources.ru

  Форум на исходниках
  C / C++ / Visual C++
  COM и взаимодействие процессов.

СПРОСИТЬ  ОТВЕТИТЬ
профайл | регистрация | faq

Автор Тема:   COM и взаимодействие процессов.
server_mouse опубликован 21-07-2001 20:11 MSK   Click Here to See the Profile for server_mouse   Click Here to Email server_mouse  
Hi, народ!
Я то думал COM даёт возможность взаимодействия процессов... Как я заблуждался! ALL, pls разубеди меня, я столько кроптел над COM, и всё для того, что-бы узнать -- нафиг он мне сейчас не упал. Неужели невозможно из нескольких процессов использовать один и тотже экземпляр COM-сервера(DLL)?
OlegO опубликован 23-07-2001 11:32 MSK     Click Here to See the Profile for OlegO  Click Here to Email OlegO     
Так в общем (в чем паника) :(
- СOM Объект из .DLL (не COM+) нельзя использовать для обмена данными между процессами, т.к. отдельный экземпляр живут в рамках одного запускающего процесса (In-Process).
- Зато через COM Объекты в .Exe и (Сервисы) c легкостью, так как он живут в своем процессе (Out-Process). И т.д.

А если тебе просто надо обменяться информацией между Процессами, то вот открыл книгу:
Краткий списко механизмом Обмена данными между процессами:

1. WM_COPYDATA
2. Clipboard.
3. Dll Shared переменные
4. Shared Memory.
5. Anonymous pipe.
6. Named pipe.
7. Почтовые слоты mailslots.
8. Dynamic Data Exchange, DDE
9. Сокеты.
10. RPC.
11. Microsoft Message Queue (MSMQ).

server_mouse опубликован 23-07-2001 12:56 MSK     Click Here to See the Profile for server_mouse  Click Here to Email server_mouse     
А как делать COM-сервис-сервер? DLL-сервер я уже лапсать научился. Объясните ламеру плз.
Что вместо DllRegisterServer?
А вместо DllGetClassObject?
И как вообще экспортировать ф-ции из exe?
Создал AppWisard-ом проект(ATL-COM), но ничего толком не понял, может потому что ATL не знаю...
OlegN опубликован 23-07-2001 13:47 MSK     Click Here to See the Profile for OlegN  Click Here to Email OlegN     
> Что вместо DllRegisterServer?
ничего, просто в .exe файле обработай
опцию командной строки например -reg и -unreg
и выполни соответствующее действие как в
DllRegisterServer и DllUnregisterServer

> А вместо DllGetClassObject?
CoRegisterClassObject при старте .exe файла и CoRevokeClassObject при завершении.

В клиентском модуле используй
CoCreateInstanceEx и CoGetClassObject

А вообще-то в MSDN-e это очень подробно расписано, и пример есть. Только не поленись
поискать и почитать пол часа.

СПРОСИТЬ  ОТВЕТИТЬ
Перейти:


E-mail | WWW.ИСХОДНИКИ.RU

Powered by: Ultimate Bulletin Board, Freeware Version 5.10a
Purchase our Licensed Version- which adds many more features!
© Infopop Corporation (formerly Madrona Park, Inc.), 1998 - 2000.