IIS和Delphi - 获取ISAPI中的应用程序文件夹

Raf*_*cci 5 delphi iis isapi

在IIS上运行ISAPI应用程序时,如果我们调用ParamStr(0)Application.ExeName在ISAPI内部,我们将获得安装IIS的文件夹(C:\ windows ...).

有没有办法获取包含我的ISAPI而不是IIS的应用程序文件夹的文件夹路径?

hai*_*img 6

您的ISAPI应用程序是一个库(DLL),因此您可以使用此方法获取其文件夹:

ExtractFilePath(GetModuleName(HINSTANCE))

如果您不需要最后一个反斜杠,请使用ExtractFileDir()而不是ExtractFilePath().

理由:根据Delphi文档,

系统单元中声明的几个变量对那些编程库特别感兴趣....在库的生命周期中,HInstance包含其实例句柄.

使用GetModuleName()可以获得该DLL的文件名.另一方面,ParamStr(0)包含已加载此DLL的主EXE的名称.