我用 .NET中 VC++ 的 Empty project选项创建了一个project,然后加入 .cpp .h 文件,填入一个 service 所必须的代码,然后"Hello world!",成功,我把此一 service 程序拿到 NT 4.0的机器上(必须在NT上用),注册成功。然后我在 .h 文件中加入了一个头文件:#include <afxwin.h>,(因为后面需要用到),编译之后,再拿到 NT 4.0上,竟然注册失败,而afxwin.h又是必须用到的,因为我后面还会加入一些文件,需要用到大量基于 windows 的函数。为什么多了这么一个头文件,编译出来的 service 就不能在NT 4.0上注册了呢?我反复试验就是不行,真是郁闷,谁能帮帮我啊?

解决方案 »

  1.   

    包含afxwin.h 这个头文件,我是想在后面使用 MFC 的东西。
      

  2.   

    MFC 无法为您做的工作
    作为一种通用的编程框架,MFC 不能预见每位程序员的每一个需求。例如,MFC 使生成电子表格应用程序的界面变得容易,但您必须提供所有重要的显示和计算逻辑。注意   MFC 不像 C 运行时库,它不是通用函数库。不能在另外的非 MFC 上下文中调用 MFC 类成员函数。从 MFC 内部仍然可以直接调用 Win32 API 函数,尤其是 MFC 未选择封装的那些函数。但大部分 MFC 函数都是类的成员,而且您必须具有该类的对象才能调用它的任何成员函数。有关相关信息,请参见 Win32 编程。
    MFC 被设计成一个用于生成 Windows 操作系统应用程序的类库。MFC 的目标和设计是针对日常使用的传统桌面生产应用程序的。由于使用 MFC 后生产效率非常高,因此尝试并将 MFC 用于不打算用 MFC 生成的应用程序类型是很诱人的。其中的一种应用程序类型就是 Windows 服务。尽管可以使用 MFC 的某些部分生成 Windows 服务,但对于使用哪些部分需要非常谨慎。Microsoft 知识库包括有关可能遇到的问题的一些信息;不过仍有许多其他问题没有记录在内。Microsoft 不支持使用 MFC 生成 Windows 服务。
      

  3.   

    非常感谢 铁手 留言,如果不能使用MFC,那我只有使用 WIN32API了。