Здравствуйте, DavidTelAviv, Вы писали:
Nope. This is not suitable. ATL 7.0 does not support _Module global variable anymore. There is _pAtlModule variable declared as:
__declspec(selectany) CAtlModule* _pAtlModule = NULL;
Anyhow, RegisterClassObject function defined in CAtlExeModuleT template, and what I can do is to call it in the next form:
hr = CAtlExeModuleT<CMyService>::RegisterClassObjects(CLSCTX_LOCAL_SERVER, REGCLS_MULTIPLEUSE | REGCLS_SUSPENDED);
But result is the same. So, how come Microsoft put this call in PreMessageLoop function of CAtlExeModuleT template, if a service can be started without it? Also, will a service be operable without the call?
Mikhail
DTA>Здравствуйте, Аноним, Вы писали:
DTA>And if you try this :
DTA> hr = _Module.RegisterClassObjects(CLSCTX_LOCAL_SERVER | CLSCTX_REMOTE_SERVER, REGCLS_MULTIPLEUSE);
DTA>?
DTA>In fact ATL template calss calls registration.
А>>Здравствуйте, DavidTelAviv, Вы писали:
А>>msvcrt71d.dll exists in system32 folder.
А>>I found why services could not be started. The function below returns code 1:
А>>А>>hr = RegisterClassObjects(CLSCTX_LOCAL_SERVER, REGCLS_MULTIPLEUSE | REGCLS_SUSPENDED);
А>>
А>>If I comment the row, the service starts successfully. Otherwise, it sucks. Anyway, I'd like to know why is that? Is it Microsoft issue, or mine?
А>>Mikhail
DTA>>>Здравствуйте, spacecraft, Вы писали:
DTA>>>Check if you have this one in sys32: MSVCR71d.dll MSVCRT.dll., perhaps some more. Your machine lacks some runtime files.
DTA>>>David
S>>>>Hello All!
S>>>>Такая проблема.
S>>>>Работаю на Win2k Advanced Server. Забацал новую службу в VC++ 2003. Сгенерировал мастером ATL 7.0 каркас, скомпилировал, зарегистрировал (запустил .exe с ключем /Service). Пробую стартовать службу из консоли Service Control Manager'а и получаю отлуп в MessageBox весьма пространного содержания:
S>>>>Could not start blah-blah-blah service on Local Computer.
S>>>>The service did not return an error. This could be an internal Windows error or an internal service error.
S>>>>If the problem persists, contact your system administrator.
S>>>>Во всей этой истории напрягает больше всего то, что каркас службы сгенерированный в VC 6.0 запускается сразу же, а то что делает мастер ATL 7.0 из VC 2003 -- не работает.
Вероятно, требуется какая-то доработка этого каркаса. В MSDN про такие фишки ничего нет. Может подскажет кто-нить, где тут собака порылась?
S>>>>Спсиб.