一、获取Dll自身路径
1)方法一:
Function GetDllPath(sDllName:string):string;
var
ModuleFileName:array[0..255] of char;
begin
//{取得dll的实际位置}
GetModuleFileName(GetModuleHandle(sDllName), @ModuleFileName[0],
SizeOf(ModuleFileName));
Result := ModuleFileName;
end;
2)方法二:
Function GetDllPath:string;
var
ModuleName:string;
begin
SetLength(ModuleName, 255);
//取得Dll自身路径
GetModuleFileName(HInstance, PChar(ModuleName),
Length(ModuleName));
Result := PChar(ModuleName);
end;
二、获取调用程序路径
Function GetExecutPath:string;
var
ModuleName:string;
begin
SetLength(ModuleName, 255);
//取得调用Dll程序的路径
GetModuleFileName(GetModuleHandle(nil), PChar(ModuleName),
Length(ModuleName));
Result := PChar(ModuleName);
end;
//======================
paramstr //全部字符串
paramcount //命令行参数个数
paramstr(i) //第几个参数。 paramstr(0)是运行的程序名称(包括全路径)
ExtractFileDrive :返回完整文件名中的驱动器,如"C:"
ExtractFilePath:返回完整文件名中的路径,最后带“/”,如"C:\test\"
ExtractFileDir:返回完整文件名中的路径,最后不带“/” ,如"C:\test"
ExtractFileName:返回完整文件名中的文件名称 (带扩展名),如"mytest.doc"
ExtractFileExt 返回完整文件名中的文件扩展名(带.),如".doc"
ExtractRelativePath : 返回相对路径,定义如下:
function ExtractRelativePath(const BaseName, DestName: string):
string;
使用测试下如:
SysUtils.ExtractRelativePath('C:\test','C:\Test\TestRelativePath'):返回TestRelativePath
SysUtils.ExtractRelativePath('C:\Test\TestRelativePath','C:\test'):返回'..\TestRelativePath'
SysUtils.ExtractRelativePath('C:\Test\TestRelativePath\','C:\test'):返回'..\..\TestRelativePath'
ExtractShortPathName :返回短文件名,即8+3,文件名长八位,扩展名为3号,为保持DOS系统兼容而存在