windows.h有有关SERVICE_NAME的说明,但我一加入stdafx.h(并且放在程序第一行)就提示我,就提示我missing ';' before identifier ssStatus。
那一句是这样的:
static SERVICE_STATUS ssStatus;
因此我判断是加入stdafx.h之后,windows.h对SERVICE_NAME的定义就无效了,
这该如何解决呢?(急,请帮忙!)

解决方案 »

  1.   

    在stdafx.h中那句之前加入
    include "windows.h"
      

  2.   

    不行,我试了,加入了以后提示一样的信息。如果将include <windows.h>放在include "stdafx.h"之前,就会提示:
    #error :  WINDOWS.H already included.  MFC apps must not #include <windows.h>真不知该如何办,我想不用stdafx.h,可我其中使用了一些诸如:CDWordArray的数据,只有在stdafx.h中有定义,真是头疼呀!
      

  3.   

    顺序问题
    你干脆将windows.h也放到stdafx.h里面,调整以下顺序值到没有错误
      

  4.   

    还是不行,我试了多次了。我想问专家:
    1、像SERVICE_NAME之类的问题,除了在windows.h里有说明外,我单独用stdafx.h是否也可以说明或是实现?
    2、我生成的***.dll,以前是打算在2000里用一个程序调用这个DLL作为service运行。但一直调不成(因为以上原因)。那我用rundll32.exe ***.dll设成service是否也可以正常运行这个dll程序?
      

  5.   

    以上程序过程如下:1、生成一个HOOKDLL,2、生成一个程序,用于产生service例程。以上两部分都不产生窗口,以前是用windows.h实现,但考虑到许多新的需求,只能用MFC里的一些函数,所以只好用stdafx.h,特此说明。
      

  6.   

    stdafx.h是预编译用的
    与windows.h意义上不同
      

  7.   

    那我该如何办呢?我确实想用SERVICE,又确实得用stdafx.h :(
      

  8.   

    在stdafx.h中include所有需要的库
    在c/cpp中只要include stdafx.h
      

  9.   

    如果是MFC程序,在StdAfx.h中应已包括<afxwin.h>这样就可以不用再#include <windows.h>了;如果出现了有些在<windows.h>中已定义,但却不能用的情况,就把MFC自动加在StdAfx.h中的宏#define VC_EXTRALEAN
    或类似的宏删除掉即可.
      

  10.   

    我不太懂,能推荐一个有关sdtafx或是vc宏介绍的网站么?
      

  11.   

    stdafx.h和window.h是不能同用的,stdafx.h已经包含了window.h.看来没办法了。
      

  12.   

    windows.h有SERVICE_NAME定义没错,但某个编译开关将它跳过了。
    #ifdef xxxxxx
    typedef SERVICE_NAME ...
    #endif
    就是xxxxxx的问题。有可能用在DDK上的,用AppWizard生成的MFC应用程序不满足这个编译开关。
    解决办法:
    将windows.hz中的SERVICE_NAME定义复制到你的程序中。
      

  13.   

    如果这样,就太多了,还有许多的SERVICE服务的定义。我指的SERVICE_NAME只是举个例,其实文件中有许多这样的定义呢,如ReportStatusToSCMgr(),SERVICE_STATUS,SERVICE_STATUS_HANDLE,service_ctrl,SERVICE_CONTROL_STOP,如果一个个找出来复制,很难。我还是希望能一次解决。
      

  14.   

    还没有解决?!上次讲过的把StdAfx.h中这一句:
    #define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers
    删掉,你试过了没有?
      

  15.   

    我试试看,谢谢,至今为止没解决,我是想了另一个办法。不用stdafx.h,可能我太笨了。我不知道在系统服务程序里是不是也不能放资源,反正我加了一个资源进去,可程序里不认,唉,真为难 :(
      

  16.   

    应该是可以的.忘了问一句你的project是什么类型的?系统服务程序中是可以带资源的,但好像必须是WIN32 application类型的project.