查了半天,找不到,问问大家

解决方案 »

  1.   

    用GetCurrentDirectory并不妥,万一程序曾修改过路径,那就“出错”了。
      

  2.   

    GetModuleFileName是得到包括可执行文件名在内的全路径...
    而GetCurrentDirectory是得到当前目录...有时可能会因为设置了当前目录而返回错误的目录...
    如果只是要得到路径而不想包括可执行文件名可用以下函数:CString GetExeDirectory()
    {
    char *szCmd=NULL,*pc=NULL; 
    int nPathLen=0; 
    char *szPath=NULL;
    CString m_ExeDir;

    szCmd=GetCommandLine(); if (szCmd[0]!='\"') return ""; 

    for (pc=szCmd+1; *pc; pc++)
    if (*pc=='\"') break; 

    for (  ; pc>=szCmd+1; pc--)
    {
    if (*pc=='\\') break;
    if (*pc=='/') break;
    }

    nPathLen=pc-(szCmd+1);
    if (nPathLen<=0) return ""; 

    szPath=(char *)malloc(nPathLen+1); if (szPath==NULL) return "";
    memcpy(szPath,szCmd+1,nPathLen); szPath[nPathLen]=0;

    m_ExeDir=szPath;
    free(szPath); return m_ExeDir;
    }
      

  3.   

    上面的szCmd=GetCommandLine();也可用GetGetModuleFileName代替...只需做稍微改动
      

  4.   

    对,用GetModuleFileName(NULL,FileName,260)