MFC下要直接调用GetAppPath函数,要加什么头文件?
我要得到当前程序路径,用GetAppPath函数函数比较简单,但不知道用什么头文件,编译提示GetAppPath未定义

解决方案 »

  1.   

    GetAppPath(); 
    .NET Framework 
    Supported in: 2.0, 1.1, 1.0 GetCurrentDirectory()
    or
    GetModuleFileName()
    ~~~~
      

  2.   

    GetCurrentDirectory()
    or
    GetModuleFileName()
      

  3.   

    GetModuleFileName 就可以得到当前应用程序的路径。
      

  4.   

    我想直接得到路径,用GetModuleFileName 太麻烦了,还要去掉程序的名字,不是直接得到路径的,我记得MFC封装的GetAppPath可以直接得到的,但不知道怎么用,要什么头文件
      

  5.   

    用那个的话,程序的快捷方式会返回快捷方式所在的路径.用这个.static BOOL GetCurrentDir(CString &str)
    {
    TCHAR szPathTemp[MAX_PATH] = {0};
    if(GetModuleFileName(NULL,szPathTemp,MAX_PATH) == 0)
    {
            return FALSE;
        }
    else
    {
    CString len = szPathTemp;
    //取出文件路径
    for(int i = len.GetLength();i>=0;i--)
    {
    if(szPathTemp[i] == '\\')
    {
    szPathTemp[i] = '\0';
    break;
    }
    }
    }
    str.Empty();
    str.Format(_T("%s"),szPathTemp);
    memset(&szPathTemp,0,MAX_PATH);
    return TRUE;
    }
      

  6.   

    HelpSystem.h,假设你有这个头文件
      

  7.   

    难道就没人用过直接的函数吗?GetAppPath函数没人用过吗?我不想知道别的怎么用,只想知道这个函数怎么用而已,我以前用过的,很简单,用一下就可以了,但现在不知道头文件还是什么的怎么写,别再告诉我那些代码了,我不想用,太麻烦了!
      

  8.   

    系统自带的是没有的,除非你用了其他人写的类,可以用GetModuleFileName。
      

  9.   

    我记得MFC里有这样的函数的,可以直接拿来用的,我上次用过,但现在一下子忘记了,没人知道吗?
      

  10.   

    好象就是GetAppPath,msdn里也有这个函数,只是不知道怎么用,我直接写strFilePath = GetAppPath();编译提示,GetAppPath未定义。
      

  11.   

    LZ 这样的情况多着呢..我一直坚信着CFile的子类里, readline的存在,呵呵.我明明在MFC里用过它的,可后来它竟然变成了ReadString()怎么找也 找不到当初的readline了,呵呵. 见过有人直接用的.. 但也许是包含了什么特殊的头文件了吧.想想以前用的时候是干什么的?加载那个环境看看..  翻翻旧程序.我也贴个函数实现吧. 呵呵. ~~
    CString GetAppPath()
    {
     TCHAR tszBuf[MAX_PATH] = {'\0'};
     GetModuleFileName( NULL, tszBuf, MAX_PATH);
     CString strDir, tmpDir;
     tmpDir = tszBuf;
     strDir = tmpDir.Left( tmpDir.ReverseFind('\\') );
     return strDir;
    }
      

  12.   

    我想你说的是文件对话框类的CFileDialog::GetPathName吧,
    CString GetPathName( ) const;Return ValueThe full path of the file.ResCall this function to retrieve the full path of the file entered in the dialog box. The path of the filename includes the file’s title plus the entire directory path. For example, GetPathName will return "C:\FILES\TEXT.DAT" for the file C:\FILES\TEXT.DAT.
    至于你说的GetAppPath是你自己的一厢情愿吧,MSDN里也没有这个函数,你记错了吧。。
      

  13.   

    我觉得你应该是INCLUDE了别人写好的东西. 没有这个东西的.
      

  14.   

    The string returned by this function can be used for diagnostic messages or as a root for temporary string names. 
    LPCTSTR AFXAPI AfxGetAppName( ); 
     
    #include<windows.h>
      

  15.   

    ZeroMemory(g_szWorkDir, 256);
    GetModuleFileName(NULL,g_szWorkDir,MAX_PATH); 
    (_tcsrchr(g_szWorkDir,'\\'))[1] = 0; 
    g_szWorkDir[strlen(g_szWorkDir)-1] = 0;
      

  16.   

    zcNetwork() 说的有点象 但我要的是路径 不是程序的文件名
      

  17.   

    好象叫 AfxGetAppPath() 但不知道头文件是什么?
      

  18.   

    我查到了,我的坚持是错的,不存在这样的函数的,还是用emptyness兄的方法写的,就是这么个函数。我错了,向各位道歉
      

  19.   

    AfxGetAppName 不能得到完整的路径名,不行的
      

  20.   

    贡献一个:
    //AfxGetAppName不能只能得到应用程序的名,不能得到应用程序的路径,
    BOOL CUtility::GetAppPath(CString &szAppPath) 

    TCHAR   szPathTemp[MAX_PATH]   =   {0};  int   sLen   =   GetModuleFileName(NULL,szPathTemp,MAX_PATH);  if(sLen  ==   0) 

    return FALSE; 

    else 
    {
    for   (int i=sLen;i>=0;--i){   
    if(szPathTemp[i] ==  TCHAR('\\')){   
      szPathTemp[i+1]   =   TCHAR('\0');   
      break;   
    }   
    }

    szAppPath.Empty(); 
    szAppPath.Format(_T( "%s"),szPathTemp); 
    memset(&szPathTemp,0,MAX_PATH); 
    return   TRUE; 
    }
      

  21.   

     可按如下加一个头文件和一个cpp文件global.h
    CString AfxGetAppPath();global.cppCString AfxGetAppPath()
    {
    char szTemp[MAX_PATH];
    GetModuleFileName(NULL,szTemp,sizeof(szTemp));
    return AfxSplitPathName(szTemp,DRIVE|PATH);
    }这是从成品源码中复制出来的
      

  22.   

     可按如下加一个头文件和一个cpp文件global.h
    CString AfxGetAppPath();global.cppCString AfxGetAppPath()
    {
    char szTemp[MAX_PATH];
    GetModuleFileName(NULL,szTemp,sizeof(szTemp));
    return AfxSplitPathName(szTemp,DRIVE|PATH);
    }这是从成品源码中复制出来的
      

  23.   

     可按如下加一个头文件和一个cpp文件global.h
    CString AfxGetAppPath();global.cppCString AfxGetAppPath()
    {
    char szTemp[MAX_PATH];
    GetModuleFileName(NULL,szTemp,sizeof(szTemp));
    return AfxSplitPathName(szTemp,DRIVE|PATH);
    }这是从成品源码中复制出来的