我开始开发 Windows 服务。我想使用我自己的一些类,它们对某些 MFC 类(如 CString、CSocket、CArchive、CMemFile 和 CObject)几乎没有依赖性。 MSDN说你需要非常小心你在 Windows 服务中使用的 MFC 的哪些部分,但不要指定它,也不要描述可能发生的问题。
我的问题是:
最佳答案
我不确定它们在 MSDN 文章中的含义。只要您不使用任何 GUI 功能,您就会没事——但这是开发服务时的一般设计问题。
话虽如此,ATL 具有专为构建服务 IIRC 设计的功能,因此您最好使用它。
回答您的问题(据我所知):
1)您指定的那些没有问题。
2) 我猜他们的意思是 UI 组件的同步问题。只要您不使用任何 CWnd 派生类,就可以了。
3)不明白这个问题。
4) 之前看到过,加上 ATL 更轻量级,因此您必须分发更少,并提供内置功能,从而减少开发服务的痛苦。见例如CAtlServiceModuleT.您仍然可以主要使用您自己的类,因为现在 CString 在 MFC 和 ATL 之间共享,并且 ATL 具有用于套接字编程和内存文件映射本身的类。它没有 CArchive 的等效项,而且我不确定您在 CObject 中使用了什么功能,所以我不能说 ATL 中是否有等效项。所以总而言之,我对这个问题说"is"。
关于visual-studio - 在 Windows 服务中使用 MFC?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1163905/