一个EXE文件运行时需要知道自身所在的路径,得到该路径的函数是什么?该程序运行时需要调用同一目录下的一个文件,必须先得到该路径。以前我用过,忘了。
求知情者指教! 感谢!

解决方案 »

  1.   

    Use GetModuleFileName 获得应用程序的路径,然后去掉可执行文件名。
    Example:
               TCHAR exeFullPath[MAX_PATH];
               GetModuleFileName(NULL,exeFullPath,MAX_PATH);
      

  2.   

    得到程序工作的当前目录
    CString GetAppPath()
    {
    char exepath[MAX_PATH];
    CString strdir, tmpdir;
    memset(exepath,0,MAX_PATH);
    GetModuleFileName(NULL,exepath,MAX_PATH);
    tmpdir = exepath;
    strdir = tmpdir.Left(tmpdir.ReverseFind('\\'));
    return strdir;
    }
      

  3.   

    //取得当前路径
    CString path;
    GetCurrentDirectory(MAX_PATH,path.GetBuffer(0));
      

  4.   

    方法1:
    char errbuf[MAXBUFSIZE],exepath[MAXBUFSIZE],*pStr;//初始化模块名
    if(GetModuleFileName(NULL,exepath,MAXBUFSIZE)<=0)
    {
    sprintf(errbuf,"GetModuleFileName fail.");
             return -1;
    }
    // 这里exepath里就是当前程序可执行文件的全路径
    //(包括文件名,如:c:\winnt\notepad.exe)pStr=strrchr(exepath,'\\');
    if ( pStr != NULL )  *pStr = 0x00;
    strcat(exepath,"\");
    // 这里exepath里就是当前程序可执行文件的路径
    //(不包括文件名,如:c:\winnt\)
    方法2:
    char szWrite[MAX_PATH];
    strcpy(szWrite,__argv[0]);
    char disk[32];
    char path[MAX_PATH];
    char fName[MAX_PATH];
    char fExt[MAX_PATH];
    ::_splitpath(szWrite,disk,path,fName,fExt);
    char result[MAX_PATH];
    strcat(result,disk);
    strcat(result,path);