解决方案 »

  1.   

    命令行,进入你服务所在的目录,然后  XXX.exe -install
      

  2.   


    StartServiceCtrlDispatcher这个返回错误
      

  3.   

    就是关于Serives内部处理流程是怎样的?有相关文档或者帖子么?
    比如说,建立服务之后,在服务管理器中,开启服务时,会处理哪些代码?
      

  4.   

    启动服务可以写个批处理。
    sc create 服务名 binPath= "C:\FtpServer\XXXX.exe" 注意binPath=后面有个空格
      

  5.   


    这个只是安装吧,不是启动服务吧
    不好意思,看错了,启动服务我都是通过控制面板手动搞的哈,比较低端,你能帮我的,如果是通过控制面板来启动服务的话,会执行代码中StartServiceCtrlDispatcher吗?
      

  6.   


    这个只是安装吧,不是启动服务吧
    不好意思,看错了,启动服务我都是通过控制面板手动搞的哈,比较低端,你能帮我的,如果是通过控制面板来启动服务的话,会执行代码中StartServiceCtrlDispatcher吗?
    会执行StartServiceCtrlDispatcher()的吧。我调试的时候只能先有进程了才能附加,所以要看的话只能打log了。
    比如在你的exe主函数里应该有SERVICE_TABLE_ENTRY   ServiceTable[]   =     
    {   
        {SERVICENAME,(LPSERVICE_MAIN_FUNCTION)ServiceMain},   
        {NULL,NULL}   
    };StartServiceCtrlDispatcher(ServiceTable);
    这样的话,你从控制面板启动服务的时候会执行ServiceMain()
    .
      

  7.   


    刚接触,有很多不懂,我就多问几句了
    在很多例子中,都是在Main()函数里面有判断
    if (stricmp(lpCmdLine, "/install") == 0)
    {
    Install();
    }
    else if (stricmp(lpCmdLine, "/uninstall") == 0)
    {
    Uninstall();
    }
    else
    {
    if (!::StartServiceCtrlDispatcher(st))
    {
    LogEvent(_T("Register Service Main Function Error!"));
    }
    }这样,在启动服务的时候,会再次进入Main函数么?
      

  8.   


    刚接触,有很多不懂,我就多问几句了
    在很多例子中,都是在Main()函数里面有判断
    if (stricmp(lpCmdLine, "/install") == 0)
    {
    Install();
    }
    else if (stricmp(lpCmdLine, "/uninstall") == 0)
    {
    Uninstall();
    }
    else
    {
    if (!::StartServiceCtrlDispatcher(st))
    {
    LogEvent(_T("Register Service Main Function Error!"));
    }
    }这样,在启动服务的时候,会再次进入Main函数么?这个我还真不知道,不过你可以打log看看。即便你程序启动不了,但是如果是要进main函数的话,总不可能是第一句出错,所以你在第一句打log看看会不会走。然后从控制面板服务管理器里去启动,看你的log是不是每次都打。
      

  9.   

    哦,现在有点朦朦胧胧的了解了
    对了,我只有在shell里面通过CServicesText.exe -start这样才有log,通过服务管理器去启动,怎么打log啊
      

  10.   

    哦,现在有点朦朦胧胧的了解了
    对了,我只有在shell里面通过CServicesText.exe -start这样才有log,通过服务管理器去启动,怎么打log啊
    你就在main函数第一行打log啊,然后通过服务管理器不停的去启动,停止,启动,停止,看log有没。
    对了,我指的是文本文件的log,就是写文件。