我编的一个VC++程序里面要读取图片,我现在用的是绝对路径
        if(m_Freq=="800MHz"&&num1==6)
{
        strName_top="E:\\6maleRat\\maleRat_800MHz_Top6.jpg";
strName_bot="E:\\6maleRat\\maleRat_800MHz_Bottom6.jpg";
},
我想在其他电脑上应用程序,但是得把文件读取改成相对路径,求解决。

解决方案 »

  1.   

    strName_top="..\6maleRat\\maleRat_800MHz_Top6.jpg";
    strName_bot="..\6maleRat\\maleRat_800MHz_Bottom6.jpg";具体我博客里有介绍
    ..\上级目录
    .\本级目录
      

  2.   

    用 Windows API:
    PathAppend 将一个路径附加在另外一个路径后面
    PathCombine 将两个路径合并为一个新路径
    两者区别是一个在原基础上修改,一个是输出到新值。如:TCHAR szPath[MAX_PATH];
    TCHAR szFile[] = TEXT("..\\6maleRat\\maleRat_800MHz_Bottom6.jpg");
    if (GetModuleFileName(NULL, szPath, MAX_PATH) > 0) {
        if (PathRemoveFileSpec(szPath)) {
            PathAppend(szPath, szFile);
        }
    }
      

  3.   


    CString    sPath;   
    GetModuleFileName(NULL,sPath.GetBufferSetLength(MAX_PATH+1),MAX_PATH);   
    sPath.ReleaseBuffer();   
    int    nPos;   
    nPos=sPath.ReverseFind('\\');   
    sPath=sPath.Left(nPos);