我要用到winsock和ADO
最好有个例子

解决方案 »

  1.   

    在CServiceModule::Run()中_Module.RevokeClassObjects前写你的实际代码。
    我一般是把实际工作包装成一个函数,比如叫MyMain,然后在Run里调用。
      

  2.   

    MSDN中有一个叫“DCOM“的例子是用COM和ATL SERVICE做的,你可以看看,不过比较难,如果你对COM不了解,那的确比较难,我也是这几天再看这个例子,很多东西不懂,希望共同交流!
      

  3.   

    上回说错了,在CServiceModule::Run()是最后几行是这样的:
        LogEvent(_T("Service started"));
        if (m_bService)
            SetServiceStatus(SERVICE_RUNNING);
    //下面是建立消息循环
        MSG msg;
        while (GetMessage(&msg, 0, 0, 0))
            DispatchMessage(&msg);    _Module.RevokeClassObjects();    CoUninitialize();把从MSG msg到_Module.RevokeClassObjects()替换成你的工作代码,例如调用函数MyMain,而在MyMain里,要象在Run中那样建立消息循环,消息循环结束时(即收到WM_QUIT),MyMain卸载WinSock及ADO连接,并返回Run。否则该服务将不能停止。
      

  4.   

    少了二个字,重贴一遍:在CServiceModule::Run()是最后几行是这样的:
        LogEvent(_T("Service started"));
        if (m_bService)
            SetServiceStatus(SERVICE_RUNNING);
    //下面是建立消息循环
        MSG msg;
        while (GetMessage(&msg, 0, 0, 0))
            DispatchMessage(&msg);    _Module.RevokeClassObjects();    CoUninitialize();把从MSG msg到_Module.RevokeClassObjects()之前替换成你的工作代码,例如调用函数MyMain,而在MyMain里,要象在Run中那样建立消息循环,消息循环结束时(即收到WM_QUIT),MyMain卸载WinSock及ADO连接,并返回Run。否则该服务将不能停止。