visual-studio - 在 Windows 服务中使用 MFC?

标签 visual-studio visual-c++ mfc atl mfc-networking

我开始开发 Windows 服务。我想使用我自己的一些类,它们对某些 MFC 类(如 CString、CSocket、CArchive、CMemFile 和 CObject)几乎没有依赖性。 MSDN说你需要非常小心你在 Windows 服务中使用的 MFC 的哪些部分,但不要指定它,也不要描述可能发生的问题。

我的问题是:

  • 可以使用哪些 MFC?
  • 使用 MFC 会出现什么问题?
  • Windows 服务的哪些部分对 MFC 的使用至关重要?
  • 对于 Windows 服务,是否建议使用 ATL 而不是 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/

    相关文章:

    c++ - friend struct继承类时无法访问

    c++ - 我可以删除 CDockablePane 中的标题吗

    c++ - 接收 MFC 对话框的 PostMessage 消息

    c++ - 在分层窗口的子对话框中未单击 CMFCButton

    visual-studio - Windows SDK UWP 应用程序错误 - DEP3321

    visual-studio - 在 Visual Studio 2012 中加倍文件名

    c++ - 使用外部依赖项运行 VC++ 单元测试时为 "Failed to set up execution context"

    c++ - 什么类型的情况会导致 cin.get() 函数不起作用?

    C++ 屏幕截图

    c# - 项目中不存在目标 "PreComputeCompileTypeScript"