svchost启动的服务
dll获取自身的路径,貌似使用GetModuleFileName(NULL,szPath,sizeof(szPath))不能获取
貌似传递了dll的实例句柄也不行....还有,随便问一下,服务怎么调试啊,超级麻烦的说

解决方案 »

  1.   

    好像可以吧!是不是你的szPath太短了!如果szPath是指针的话,好像sizeof==4
      

  2.   

    在你的dllmain里面获取。把dll句柄(好像是dllmain的第一个参数)传到GetModuleFileName第一个参数上面。
      

  3.   

    dll调试很容易的。把你servicemain的实现。用另一个接口导出。直接调用导出接口就行了。举个例子。void ServiceMain()
    {
        //dosomething
    }void Test()
    {
        ServiceMain();
    }rundll32.exe mydllname.dll,Test
      

  4.   

    GetModuleFileName(g_hInstance,strPath,MAX_PATH);   g_hInstance是你的DLL的实例
      

  5.   


    ServiceMain不是系统服务管理器调用的嘛,这样调试可以吗?
      

  6.   

    ServiceMain不是系统服务管理器调用的嘛,这样调试可以吗?
    -------------------
    肯定不执行
      

  7.   

    理论上说不可以GetModuleFileName第一个参数不能NULL,如果你要取DLL的路径的话
      

  8.   


    什么函数只是代码段。想怎么调用不就是你的事情了。
    rundll32.exe mydllname.dll,Test 是直接调用dll中指定函数