![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
COM в сервисах [D6, Win2k, WinXP]
AngeL B. © (2002-12-24 12:25:00)Кто-ниб. сталкивался с проблемой инициализации СОМ в сервис-приложениях. У меня возникает исключение "Не произведен вызов CoInitialize", несмотря на то, что этот вызов сделан явно при создании объекта сервиса.
Digitman (2002-12-24 12:52:00) [1]
> вызов сделан явно при создании объекта сервиса
Вызов конструктора объекта-сервиса у тебя был сделан в другом код.потоке. Что толку, что ты в нем вызывал CoInitialize() ? Обращаться-то к COM ты будешь, вероятно, в код.потоке самого этого сервиса, а не в код.потоке, стартовавшем этот сервис !
CoInitialize()/CoUnInitialize() следует вызывать именно в том код.потоке, в котором будут обращения к COM-механизму.
Например, тело обработчика OnExecute() как раз и выполняется в код.потоке собственно созданного уже объекта-сервиса.