我用2003向导创建了一个service但是里面没有我添代码的地方。也就是说直接编译这个工程之后,用命令行方式将它设置为后台服务,在服务里也看的到我的服务,但是不能启动。我该在什么地方添我的代码??让这个服务正常运行?注:我没有用的属性方式请知道这个问题的朋友帮我解决一下。

解决方案 »

  1.   

    最好使用属性化编程。使用类似于下面的代码。[ module(SERVICE, uuid = "{9C690CC0-477A-4F44-8DC4-705F62F88C72}", 
     name = "SRSimpleServer", 
     helpstring = "SRSimpleServer 1.0 类型库", 
     resource_name="IDS_SERVICENAME") ]
    class CSRSimpleServer
    {
    public:
    CSRSimpleServer()
    {
    m_pNet = NULL;
    m_bIsActive = TRUE;
    }#ifdef DEBUG
    int WinMain( int nShowCmd ) throw( )
    {
    return __super::WinMain(SW_SHOW);
    }
    #endif HRESULT PreMessageLoop(int nShowCmd)
    {
    HRESULT hr = __super::PreMessageLoop(nShowCmd); if (SUCCEEDED(hr) && !m_bDelayShutdown)
    hr = CoResumeClassObjects(); return S_OK; } void RunMessageLoop( ) throw( )
    {
    MSG msg; BOOL bRet; while( (bRet = GetMessage( &msg, NULL, 0, 0 )) != 0)

    if (bRet == -1)
    {
    break;
    }
    else
    {
    TranslateMessage(&msg); 
    DispatchMessage(&msg); 
    }
    }
    } HRESULT PostMessageLoop()
    {
    CoUninitialize(); return __super::PostMessageLoop();
    }
    };
      

  2.   

    答非所问啊~~~~~难道没有人用过ATL7?
      

  3.   

    你搞什么飞机啊,ATL7生成得代码,本来就可以安装运行。直接编译出来后,用appname.exe /service就可以安装成服务了啊你一定是用错命令了吧?