相对路径转化为绝对路径
作者:互联网
遇到一个问题,需要按照条件显示一个文件夹里的很多张图像中的一张(作为菜鸟的我只能选择这种低级的操作),搜索找到了一个函数可以显示文件里的图片到picture控件中,就是它:
BOOL ShowImage(CDC* pDC, CString strPath, int x, int y);
如图所示,它需要输入一个控件ID和文件路径,以及图片相对控件的偏移量,问题来了:函数里输入的路径是绝对路径,写好的程序换个盘放图片路径就变了,辛辛苦苦拼凑出来的程序就歇了,那么要把相对路径转换为绝对路径不就OK了,于是乎又开始了搜索,但是没找到。。。。正当绝望之际,忽然想到,把相对路径相对的那个文件路径得到了问题不就解决了吗?于是乎搜索了一下C++有没有获取当前文件路径的函数,果然它不令人失望,它有:
//获取当前文件所在目录
char buff[250];
_getcwd(buff, 250);
std::string current_working_directory(buff);
CString CString_Image_Path(current_working_directory.c_str());
它可以获取到.cpp文件的路径,与相对路径拼接一下,添加上相对.cpp文件的路径偏移,绝对路径搞定,头发保住了!!!!(_getcwd(buff, 250)这一句好像会报错,直接搜一下错误提示按照搜索到的措施解决错误即可)
//拼接得到图片的相对路径
CString Image_Path = _T("\\image\\1.jpg") ;
//拼接得到图片绝对路径
CString_Image_Path += Image_Path;
MessageBox(CString_Image_Path);
然后它放在任何位置都可以显示图片了
(1)
(2)
这是一个苦逼研究生混迹CSDN一年多以来写的第一篇文章,写在加班的元旦第二天假期,哦不,我没有假期!
标签:路径,Image,CString,绝对路径,转化,相对路径,Path 来源: https://blog.csdn.net/qq_47905903/article/details/122273957