vc处理相对路径的代码

众所周知,vc调试环境下的当前路径并不是Exe输出的目录而是工程文件所在目录,所以如果参数文件存放在和Exe同一目录下的话在调试环境就会发生找不到参数文件的错误,可以经过设置Debug下的Working Dir到Exe的输出目录可解决。这是因为参数文件名通常使用了相对路径,比如“para.xml”,这个路径是受当前目录影响的,当前目录是“d:\\”,那么实际文件的绝对路径就是“d:\\para.xml”。使用这样的相对路径是有隐患的,因为当前路径经常是变换的,一种解决方法就是直接使用绝对路径,还有就是正常的方法把代码中的相对路径,转换为和Exe程序相关联的绝对路径。

vc处理相对路径的代码如下:


void GetExePath(CString &strPath)
{
    char path[MAX_PATH];
    ::GetModuleFileName(NULL,path,MAX_PATH);
    CString exepath;
    exepath=path;
    int nn=0;
    int pos = exepath.ReverseFind('\\');
    strPath=exepath.Left(pos) + '\\';
}

    CString strFileName;
    GetExePath(strFileName);
    strFileName+= "para.xml";



通过调用GetExePath可以得到当前exe程序所在的路径,再加上原来的相对路径,就很容易得到绝对路径strFileName。


文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags: vc 相对路径 绝对路径 代码
相关日志:
评论: 0 | 引用: 0 | 查看次数: -
发表评论
昵 称:
密 码: 游客发言不需要密码.
内 容:
验证码: 验证码
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.