有资源或例子都行!?

解决方案 »

  1.   

    http://codeguru.earthweb.com/system/nt_service.shtml
      

  2.   

    微软的msdn中有关于service的例子,还有一个叫做wfc的类库,封装了很多的东西,想service等,也封装成了类,你可以看一下。
      

  3.   

    其实SOCKET程序一般的程序实现方法一样。只是SERICE具体的启动方法,和执行的入口不一样而已。
      

  4.   

    void WINAPI ServiceMain(DWORD argc, LPTSTR *argv)
    {
        serviceStatus.dwServiceType        = SERVICE_WIN32; 
        serviceStatus.dwCurrentState       = SERVICE_START_PENDING; 
        serviceStatus.dwControlsAccepted   = SERVICE_ACCEPT_STOP; 
        serviceStatus.dwWin32ExitCode      = 0; 
        serviceStatus.dwServiceSpecificExitCode = 0; 
        serviceStatus.dwCheckPoint         = 0; 
        serviceStatus.dwWaitHint           = 0; 
     
        serviceStatusHandle = RegisterServiceCtrlHandler(SERVICE_NAME, ServiceCtrlHandler);  
        if (serviceStatusHandle == (SERVICE_STATUS_HANDLE)0) 
            return;     serviceStatus.dwCurrentState       = SERVICE_RUNNING; 
        serviceStatus.dwCheckPoint         = 0; 
        serviceStatus.dwWaitHint           = 0;  
        if (!SetServiceStatus (serviceStatusHandle, &serviceStatus)) 
    return;

    //初始化网络侦听函数
    InitSocketServer();    ////////////////////////////////////////////////////////
        // Service is now running, perform work until shutdown
    bRunning = true;
    while(bRunning)
    Sleep(5000);     return; 
    }void WINAPI ServiceCtrlHandler(DWORD Opcode)
    {
        switch(Opcode) 
        { 
            case SERVICE_CONTROL_PAUSE:
                serviceStatus.dwCurrentState = SERVICE_PAUSED; 
                break; 
            case SERVICE_CONTROL_CONTINUE: 
                serviceStatus.dwCurrentState = SERVICE_RUNNING; 
                break; 
            case SERVICE_CONTROL_STOP: 
                serviceStatus.dwWin32ExitCode = 0; 
                serviceStatus.dwCurrentState  = SERVICE_STOPPED; 
                serviceStatus.dwCheckPoint    = 0; 
                serviceStatus.dwWaitHint      = 0; 
                SetServiceStatus(serviceStatusHandle, &serviceStatus); ExitSocketServer();  //exit service and close resource bRunning = false;
    break;
        }  
        
        return; 
    }