好象用loadFile()只对绝对路径有效,要相对路径怎么办啊

解决方案 »

  1.   

    想办法将相对路径转换为绝对路径不就行了?
    获得EXE的位置,然后再转换!
      

  2.   

    用绝对路径不也一样吗?
    int nLen = ::GetCurrentDirectory(100,strCurDrt);
    if( strCurDrt[nLen]!='\\' )
    {
    strCurDrt[nLen++] = '\\';
    strCurDrt[nLen] = '\0';
    }
    mCurFlashFileName = strCurDrt;
    mCurFlashFileName += "flash\\Main.swf"; mShockwaveFlash.LoadMovie(i, mCurFlashFileName); mShockwaveFlash.Play();
      

  3.   

    使用下面两个函数将相对路进转换为绝对路径
    //获取当前程序的完整路径,包括程序名
    CString szPath;
    GetModuleFileName(NULL,szPath.GetBuffer(MAX_PATH),MAX_PATH);
    szPath.ReleaseBuffer();

    //不包括程序名
    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;
    }