我可以在本机C++服务中使用ATL吗?

sha*_*awn 0 c c++ windows winapi atl

如果我使用本机Windows API调用(如StartServiceCtrlDispatcher()等)而不是ATL服务(http://msdn.microsoft.com/en-us/library/74y2334x%28v=vs.80%29.aspx)来安装,卸载或控制我的服务,仍然使用某些ATL功能,它会搞砸一切吗?

Rem*_*eau 5

在服务中使用ATL是安全的.需要注意的一点是,如果服务托管其他进程使用的COM服务器,请确保StartServiceCtrlDispatcher()在调用CoRegisterClassObject()Win2003 + 之前调用,否则CoRegisterClassObject()将失败.在早期的操作系统版本中,调用的顺序无关紧要.