我可以在本地c++服务中使用ATL吗?
Can I use ATL in a native C++ service?
如果我使用本机windows API调用(如StartServiceCtrlDispatcher()等)而不是ATL服务(http://msdn.microsoft.com/en-us/library/74y2334x%28v=vs.80%29.aspx)来安装,卸载或控制我的服务,并且仍然使用某些ATL功能,它会把一切搞砸吗?
在服务中使用ATL是安全的。需要注意的一个警告是,如果服务托管一个被其他进程占用的COM服务器,请确保在Win2003+上调用CoRegisterClassObject()
之前调用StartServiceCtrlDispatcher()
,否则CoRegisterClassObject()
将失败。在早期的操作系统版本中,调用的顺序无关紧要。
(我假设您正在使用本机代码,而不是。net)是这样吗?)
像ATL, MFC这样的东西是原生Win32调用的包装器。应该不会有问题的在同一个应用中使用本机和包装器不,通过本机WinAPI调用来控制你的服务应该是好的,并且仍然使用ATL来处理其他事情。我以前在生产代码中看到过这种情况。例如,WinAPI调用控制服务,但使用了<atlenc.h>
中的一些加密函数。
相关文章:
- Active Directory:从网络服务帐户下运行的Windows服务调用ADsOpenObject时失败
- 检测win32服务创建和删除的最佳方法
- 使用 mod_gsoap 部署服务时,如何在 Gsoap 中更改 soap 上下文的模式?
- 当服务中的事件被触发时,如何将响应从服务发送回客户端?
- gRPC 生成的代码缺少服务实现
- C# DLL 从C++应用程序调用 SOAP Web 服务
- 在 Winrt/C++ 中使用应用服务
- 将第二个 GATT 服务添加到 Movesense 容器
- 从运行服务的应用程序代码中提取窗口句柄
- ATL::CComContainedObject<contained>: C2259 无法实例化抽象类
- 对于使用高级服务的分钟数和应付金额,我不断得到相同的数字
- 通过 Tor 服务C++ socket.io 客户端
- 创建服务失败0x6f7存根收到错误数据
- Windows 后台服务(系统配置文件)无法使用 C++ 访问 win 10 上的用户 appData 文件夹?
- 如何在ATL服务项目的外形中制作蜂鸣器程序
- ATL 服务未显示在服务中.msc 中
- ATL Web 服务日志记录
- 保持ATL服务运行的最佳方法是什么?
- 我可以在本地c++服务中使用ATL吗?
- 从ATL C++客户端调用Axis2 web服务