VC 获 取 当前程序运行路径的几种方法

来源:互联网 发布:淘宝代发 编辑:程序博客网 时间:2024/05/29 18:54

1.使用APi函数GetModuleFileName

char path[MAX_PATH];
GetModuleFileName(NULL, path, MAX_PATH);        //获取到完整路径如:E:/Tools/qq.exe
*strrchr(path,'//') = '/0';                                                      //截取路径E:/Tools

2.MFC

char path[MAX_PATH];
memcpy(path, AfxGetApp()->m_pszHelpFilePath, MAX_PATH)       //获取到完整路径如:E:/Tools/qq.hlp
*strrchr(path,'//') = '/0';                                                                              //截取路径E:/Tools

 

3 用这个函数也可以做到截取路径

PathRemoveFileSpec(LPTSTR pszPath)

例:

LPTSTR GetProgramDir(int nBufferLength, LPTSTR lpBuffer)
{
    DWORD dwReturn = 0;
LPTSTR tszSlash;

    if (nBufferLength <= 0 || lpBuffer == NULL)
        return NULL;

    dwReturn = ::GetModuleFileName(NULL, lpBuffer, nBufferLength);
if (dwReturn <= nBufferLength)
    {
    PathRemoveFileSpec(lpBuffer);
    tszSlash = lpBuffer;
    }

    return tszSlash;
}

 

2..

string GetPPath()                 //取程序运行的当前路径
{
TCHAR exeFullPath[MAX_PATH]; // MAX_PATH
GetModuleFileName(NULL,exeFullPath,MAX_PATH);//得到程序模块名称,全路径

char drive[_MAX_DRIVE];
char dir[_MAX_DIR];

_splitpath(exeFullPath, drive, dir, NULL,NULL);

string PragramPath(drive);
string TempPath(dir);
PragramPath += TempPath ;
cout<< PragramPath<<endl;
return PragramPath;
}