SetLength(RunPath, 256);
  SetLength(RunPath, GetModuleFileName(HInstance, PChar(RunPath), 256));
  RunPath:=ExtractFilePath(RunPath);这是一个CGI Stand-alone Executable程序,用Delphi7创建,在OnCreate的时候写有上面的代码,调试发现,只要是带有参数传递的情况下,返回的RunPath就变成了传递的那个变量的值,而不是正确的结果,是哪个地方我理解不正确呢?请高人指点。

解决方案 »

  1.   

    比如说:http://localhost/he/cgi/centersv.exe/login的时候,RunPath的值正确。
    而http://localhost/he/cgi/centersv.exe/getimage?userid=32342342的时候,RunPath就变成32342342这个值了。
      

  2.   

    你用RunPath:=ExtractFilePath(paramstr(0));试试
      

  3.   

    ParamStr(0)不行的,试过了。因为没有宿主程序,只适合Exe Application。没有Application.ExeName这个属性。谢谢两位。大家继续讨论啊。
      

  4.   

    你用的是什么呀,怎么会没有Application.ExeName呢?
      

  5.   

    CGI Stand-alone Executable啊。写得很清楚了啊。
      

  6.   

    CGI Stand-alone Executable啊。写得很清楚了啊。
      

  7.   

    是TWebApplication类型的Application,你可以看看VCL里面的代码啊。哪里有ExeName的属性了??
      

  8.   

    定义一个变量
    ls_dir:string
    然后调用函数GetDir
    Getdir(0, ls_dir);
      

  9.   

    tonyliu398朋友的方法搞定!不过大家别忘了给ls_dir加上“\”,因为它得到的结果末尾没有“\”的,这点容易忽略。