请问如何获取当前程序所在路径?
RT,相当于是一个EXE程序,用什么函数能查询它所在的路径位置,谢谢大家帮忙
[解决办法]
贴上一段:
enum PathNamePart
{
DRIVER_PART = 1,
DIR_PART = 2,
FNAME_PART = 4,
EXT_PART = 8
};
////////////////////////////////////////////////////////////////////////////////
//路径名的各部分,可以对PathNamePart的取值进行按位或组合。
std::string GetPartOfPathName(std::string strPathName, unsigned char parts)
{
char szDriver[_MAX_DRIVE], szDir[_MAX_DIR], szFName[_MAX_FNAME], szExt[_MAX_EXT];
_splitpath(strPathName.c_str(), szDriver, szDir, szFName, szExt);
std::string strResult;
if(parts & DRIVER_PART)
strResult = szDriver;
if(parts & DIR_PART)
strResult += szDir;
if(parts & FNAME_PART)
strResult += szFName;
if(parts & EXT_PART)
strResult += szExt;
return strResult;
}
////////////////////////////////////////////////////////////////////////////////
//获取应用程序所在路径
std::string GetAppPath()
{
static std::string strAppPath;
if(strAppPath.length() == 0)
{
char szAppPathName[MAX_PATH];
szAppPathName[GetModuleFileNameA(NULL, szAppPathName, MAX_PATH - 1)] = '\0 ';
strAppPath = GetPartOfPathName(szAppPathName, DRIVER_PART|DIR_PART);
}
return strAppPath;
}