Re: exe сервер
От: Mager Украина  
Дата: 20.05.10 11:53
Оценка: 7 (1)
Здравствуйте, andrw, Вы писали:

A>Всем доброго дня!

A>Недавно встала задача разместить COM классв *.exe файле.
A>ATL в принципе позволяет решать эту задачу и как тоже понятно, вопрос в том
A>возможно-ли создавать каждый com класс в отдельном процессе. Т.е. на каждый
A>CoCreateInstance создавался отдельный процесс?

Посмотрите здесь
Автор(ы): Евгений Щербатов
Дата: 17.07.2001

В статье рассматриваются вопросы, связанные с использованием работы серверов в режиме Single/Multiple Instances, а так же способы, которыми решается эта задача в MFC и ATL.
exe сервер
От: andrw  
Дата: 20.05.10 11:41
Оценка:
Всем доброго дня!
Недавно встала задача разместить COM классв *.exe файле.
ATL в принципе позволяет решать эту задачу и как тоже понятно, вопрос в том
возможно-ли создавать каждый com класс в отдельном процессе. Т.е. на каждый
CoCreateInstance создавался отдельный процесс?
Re: exe сервер
От: kvasya  
Дата: 20.05.10 11:44
Оценка:
Здравствуйте, andrw, Вы писали:

A>Всем доброго дня!

A>Недавно встала задача разместить COM классв *.exe файле.
A>ATL в принципе позволяет решать эту задачу и как тоже понятно, вопрос в том
A>возможно-ли создавать каждый com класс в отдельном процессе. Т.е. на каждый
A>CoCreateInstance создавался отдельный процесс?

емнип это поведение по умолчанию, не?
Re[2]: exe сервер
От: andrw  
Дата: 20.05.10 11:48
Оценка:
Здравствуйте, kvasya, Вы писали:

K>Здравствуйте, andrw, Вы писали:


A>>Всем доброго дня!

A>>Недавно встала задача разместить COM классв *.exe файле.
A>>ATL в принципе позволяет решать эту задачу и как тоже понятно, вопрос в том
A>>возможно-ли создавать каждый com класс в отдельном процессе. Т.е. на каждый
A>>CoCreateInstance создавался отдельный процесс?

K>емнип это поведение по умолчанию, не?


На первый вызов создается, а потом получается в рамках уже созданного процесса
Re[3]: exe сервер
От: andrw  
Дата: 20.05.10 11:49
Оценка:
Здравствуйте, andrw, Вы писали:

A>Здравствуйте, kvasya, Вы писали:


K>>Здравствуйте, andrw, Вы писали:


A>>>Всем доброго дня!

A>>>Недавно встала задача разместить COM классв *.exe файле.
A>>>ATL в принципе позволяет решать эту задачу и как тоже понятно, вопрос в том
A>>>возможно-ли создавать каждый com класс в отдельном процессе. Т.е. на каждый
A>>>CoCreateInstance создавался отдельный процесс?

K>>емнип это поведение по умолчанию, не?


A>На первый вызов создается, а потом получается в рамках уже созданного процесса

и когда последний объект релизится то и процесс завершается
Re: exe сервер
От: Vi2 Удмуртия http://www.adem.ru
Дата: 20.05.10 11:55
Оценка:
Здравствуйте, andrw, Вы писали:

A>Недавно встала задача разместить COM классв *.exe файле.

A>ATL в принципе позволяет решать эту задачу и как тоже понятно, вопрос в том возможно-ли создавать каждый com класс в отдельном процессе. Т.е. на каждый CoCreateInstance создавался отдельный процесс?

Ищи REGCLS_MULTIPLEUSE и REGCLS_SINGLEUSE на сайте.
Vita
Выше головы не прыгнешь, ниже земли не упадешь, дальше границы не убежишь! © КВН НГУ
Re[2]: exe сервер
От: andrw  
Дата: 20.05.10 11:55
Оценка:
Здравствуйте, Mager, Вы писали:

M>Здравствуйте, andrw, Вы писали:


A>>Всем доброго дня!

A>>Недавно встала задача разместить COM классв *.exe файле.
A>>ATL в принципе позволяет решать эту задачу и как тоже понятно, вопрос в том
A>>возможно-ли создавать каждый com класс в отдельном процессе. Т.е. на каждый
A>>CoCreateInstance создавался отдельный процесс?

M>Посмотрите здесь
Автор(ы): Евгений Щербатов
Дата: 17.07.2001

В статье рассматриваются вопросы, связанные с использованием работы серверов в режиме Single/Multiple Instances, а так же способы, которыми решается эта задача в MFC и ATL.


Вот спасибо большое, то что надо!
Re: exe сервер
От: andrw  
Дата: 20.05.10 13:09
Оценка:
Здравствуйте, andrw, Вы писали:

A>Всем доброго дня!

A>Недавно встала задача разместить COM классв *.exe файле.
A>ATL в принципе позволяет решать эту задачу и как тоже понятно, вопрос в том
A>возможно-ли создавать каждый com класс в отдельном процессе. Т.е. на каждый
A>CoCreateInstance создавался отдельный процесс?

Интересно, а другого способа нет, чтобы обойтись без коррекции
исходников atlbase.h.
Хотя самому так сразу ничего в голову не приходит
Re[2]: exe сервер
От: Vi2 Удмуртия http://www.adem.ru
Дата: 20.05.10 13:15
Оценка:
Здравствуйте, andrw, Вы писали:

A>Интересно, а другого способа нет, чтобы обойтись без коррекции исходников atlbase.h.

A>Хотя самому так сразу ничего в голову не приходит

Переопредели функциональность класса своего приложения, наследующего CAtlModuleT. Все равно ты знаешь как должно работать. Например, HRESULT RegisterClassObjects(DWORD dwClsContext, DWORD dwFlags) throw() или HRESULT PreMessageLoop(int /*nShowCmd*/) throw().

Там идет вызов шаблонного метода, так что замена будет действенна.
Vita
Выше головы не прыгнешь, ниже земли не упадешь, дальше границы не убежишь! © КВН НГУ
Re[3]: exe сервер
От: andrw  
Дата: 20.05.10 13:19
Оценка:
Здравствуйте, Vi2, Вы писали:

Vi2>Здравствуйте, andrw, Вы писали:


A>>Интересно, а другого способа нет, чтобы обойтись без коррекции исходников atlbase.h.

A>>Хотя самому так сразу ничего в голову не приходит

Vi2>Переопредели функциональность класса своего приложения, наследующего CAtlModuleT. Все равно ты знаешь как должно работать. Например, HRESULT RegisterClassObjects(DWORD dwClsContext, DWORD dwFlags) throw() или HRESULT PreMessageLoop(int /*nShowCmd*/) throw().


Vi2>Там идет вызов шаблонного метода, так что замена будет действенна.


спасибо за подсказку!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.