首页
社区
课程
招聘
[求助]一个编译时的错误,我不知道为什么错了,望大家指点
发表于: 2009-2-15 15:13 3460

[求助]一个编译时的错误,我不知道为什么错了,望大家指点

2009-2-15 15:13
3460
代码如下(很短):
// 服务程序和窗口程序有些类似,ServiceMain和WinMain有些相似,ControlHandler和窗口过程有些相似,\
//但是服务程序仍然有WinMain或者Main函数(用于控制台)
#include <windows.h>
#include <Winsvc.h>
SERVICE_STATUS ServiceStatus;
SERVICE_STATUS_HANDLE hStatus;
HEVENT hevent;            //编译的时候提示这里有错误,我不知道为什么错了,不解啊
void WINAPI ControlHandler(DWORD ControlCode)
{
        switch(ControlCode)
        {
        case SERVICE_ACCEPT_STOP:
                ServiceStatus.dwCurrentState=SERVICE_STOP_PENDING;
                SetServiceStatus(hStatus,&ServiceStatus);
                SetEvent(hevent);
                break;
        case 0xa0:
                Beep(1000,1000);
                break;
        default:
                break;
        }
}
void WINAPI ServiceMain(int argc, LPTSTR *lpszArgv)   //ServiceMain函数结束就代表服务终止
{
        hStatus=RegisterServiceCtrlHandler("beep",(LPHANDLER_FUNCTION)ControlHandler);
        ServiceStatus.dwServiceType=SERVICE_WIN32_OWN_PROCESS;
        ServiceStatus.dwCurrentState=SERVICE_START_PENDING;
        ServiceStatus.dwControlsAccepted=SERVICE_ACCEPT_STOP+0xa0;
        ServiceStatus.dwWin32ExitCode=NO_ERROR;
        SetServiceStatus(hStatus,&ServiceStatus);
        //------------在这里加入初始化代码---------------------------------
        ServiceStatus.dwCurrentState=SERVICE_RUNNING;
        SetServiceStatus(hStatus,&ServiceStatus);
        hevent=CreateEvent(NULL,TRUE,FALSE,NULL);     //事件对象初始状态被设置为复位
        WaitForSingleObject(hevent,INFINITE);
}
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nShowCmd)
{
        SERVICE_TABLE_ENTRY ServiceTable[2];
        ServiceTable[0].lpServiceName = "beep";
        ServiceTable[0].lpServiceProc = (LPSERVICE_MAIN_FUNCTION)ServiceMain;
        ServiceTable[1].lpServiceName = NULL;
    ServiceTable[1].lpServiceProc = NULL;
        StartServiceCtrlDispatcher(ServiceTable);    //注册服务主程序ServiceMain
        return 0;
}
这是学习服务程序的时候写的最简单的服务程序,编译的时候提示有以下错误:
C:\Documents and Settings\Owner\桌面\服务程序模板\ServiceTemplate.cpp(7) : error C2146: syntax error : missing ';' before identifier 'hevent'
C:\Documents and Settings\Owner\桌面\服务程序模板\ServiceTemplate.cpp(7) : error C2501: 'HEVENT' : missing storage-class or type specifiers
C:\Documents and Settings\Owner\桌面\服务程序模板\ServiceTemplate.cpp(7) : fatal error C1004: unexpected end of file found

[培训]科锐逆向工程师培训第53期2025年7月8日开班!

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 255
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2

HEVENT hevent;  

改为
HANDLE hevent;  
2009-2-16 17:28
0
游客
登录 | 注册 方可回帖
返回