VC有没有与CB类似的函数fnsplit()用来将路径分解

解决方案 »

  1.   

    自己写,或者可以用:
    //获取当前程序的完整路径,包括程序名
    CString szPath;
    GetModuleFileName(NULL,szPath.GetBuffer(MAX_PATH),MAX_PATH);
    szPath.ReleaseBuffer();

    //我给你一个函数吧,你放在你的APP文件类里面
    //不包括程序名
    CString CXXXXXXApp::GetCurDir()
    {
     TCHAR sDrive[_MAX_DRIVE];
     TCHAR sDir[_MAX_DIR];
     TCHAR sFilename[_MAX_FNAME],Filename[_MAX_FNAME];
     TCHAR sExt[_MAX_EXT];
     GetModuleFileName(AfxGetInstanceHandle(), Filename, _MAX_PATH);
     _tsplitpath(Filename, sDrive, sDir, sFilename, sExt);
     CString homeDir(CString(sDrive) + CString(sDir));
     int nLen = homeDir.GetLength();
     if(homeDir.GetAt(nLen-1) != _T('\\'))
      homeDir += _T('\\');
     return homeDir;
    }
      

  2.   

    也可以:
    //获得程序当前的路径
    char szWorkDir[256];
    _getcwd( szWorkDir, 256 );
      

  3.   

    void _splitpath(
       const char *path,
       char *drive,
       char *dir,
       char *fname,
       char *ext 
    );
    void _wsplitpath(
       const wchar_t *path,
       wchar_t *drive,
       wchar_t *dir,
       wchar_t *fname,
       wchar_t *ext 
    );