Необходимо реализовать алгоритм, работающий (сбор и анализ данных) в течении работы системы и передающий результаты по запросам клиентов. Все происходит на локальной машине, сеть не нужна в принципе.
Как лучше сделать, с учетом что работать будет только под Win2k/XP?
Я реализовал процесс сбора и обработки данных как Singleton COM. В результате все клиенты получают доступ к единственному экземпляру. Осталось только создавать его при запуске ОС (и что бы приложение любого юзера получило к нему доступ).
Пробовал сделать так:
1) Service с COM-интерфейсом.
Создал визардом ATL Service, добавил реализацию своего COM интерфейса.
В итоге запускается сервис при старте ОС, а клиенты, еще при запросе IUnknown, получают E_ACCESSDENIED.
Проблема решается если запускать сервис от текущего юзера. Однако это не решение...
2) Сделал так:
— COM в отдельном EXE-сервере
— сервис, создающий экземпляр и "удерживающий" его в течении работы системы. Сам ничего больше не делает, главное что все последующий клиенты получат этот же экземпляр.
— клиенты получают доступ к единственному экземпляру.
Вроде все ок, но как-то криво получилось.
Может есть варианты лучше?
Re: Создание COM при запуске? (посоветуйте структуру приложе
Здравствуйте, Doc, Вы писали:
Doc>Пробовал сделать так: Doc>1) Service с COM-интерфейсом. Doc>Создал визардом ATL Service, добавил реализацию своего COM интерфейса. Doc>В итоге запускается сервис при старте ОС, а клиенты, еще при запросе IUnknown, получают E_ACCESSDENIED. Doc>Проблема решается если запускать сервис от текущего юзера. Однако это не решение...
Дело, скорее всего, не в текущем юзере.
В dcomcnfg для твоего сервиса на вкладке Security настрой access permission и launch permission.
Doc>2) Сделал так: Doc>- COM в отдельном EXE-сервере Doc>- сервис, создающий экземпляр и "удерживающий" его в течении работы системы. Сам ничего больше не делает, главное что все последующий клиенты получат этот же экземпляр. Doc>- клиенты получают доступ к единственному экземпляру. Doc>Вроде все ок, но как-то криво получилось.
Да. Сервис не нужен. EXE-сервер может сам себя держать в памяти.
Имею скафандр — готов путешествовать!
Re[2]: Создание COM при запуске? (посоветуйте структуру прил
Здравствуйте, rus blood, Вы писали:
RB>Дело, скорее всего, не в текущем юзере. RB>В dcomcnfg для твоего сервиса на вкладке Security настрой access permission и launch permission.
Все равно остается вопрос — как сделать такие настроки автоматом при установке?
Т.е. юзер не будет ковыряться в таких детялях.
RB>Да. Сервис не нужен. EXE-сервер может сам себя держать в памяти.
Да, однако EXE-сервер запускается в контексте текущего не будет "виден" другим юзерам (например в WinXP при смене).
А вообще мне хочется убежать от того, что каждому юзеру создается своя копия — достаточно 1 сервиса.
Re[3]: Создание COM при запуске? (посоветуйте структуру прил
Здравствуйте, Doc, Вы писали:
Doc>Все равно остается вопрос — как сделать такие настроки автоматом при установке? Doc>Т.е. юзер не будет ковыряться в таких детялях.
Там ссылка на пример, который лежит в 100Мб сборнике примеров от VC6. С моим соединением это не выкачать.
А отдельно этого примера нет? Если он не большой может кто-нибудь кинет им в меня?
Re[5]: Создание COM при запуске? (посоветуйте структуру прил
Здравствуйте, Doc, Вы писали:
Doc>Там ссылка на пример, который лежит в 100Мб сборнике примеров от VC6. С моим соединением это не выкачать. Doc>А отдельно этого примера нет? Если он не большой может кто-нибудь кинет им в меня?
Ушло почтой
Re[6]: Создание COM при запуске? (посоветуйте структуру прил