c++ 中CImage类Load函数,路径中含有空格应对策略!

时间:2021-05-08 08:30:37

最近,在写一些东西的时候,需要用到CImage类将JPG各式的图片转换成BMP图片,传入的是图片的绝对地址:如C:\Users\Administrator\Documents\Visual Studio 2010\Projects\***\IMAGES\****\0000284n.jpg。但是再用CImage类中Load函数时,始终返回的是错误。所以,我进行了单步调试,才找到原因:原来路径中包含了空格,如图中划红线的部分c++ 中CImage类Load函数,路径中含有空格应对策略!。因为传入的是char*,所以上网百度了一下,看见了许多方法,如"\""+path+"\""等。自己也试了一下,但是一点都不管用。自己思考了一番,觉得是字符串在转变为LPCTSTR时,转换的问题,故利用了CString类,作为char*与LPCTSTR之间转换的桥梁,一试果然通了。

如:

CImage image;

char * path="C:\Users\Administrator\Documents\Visual Studio 2010\Projects\***\IMAGES\****\0000284n.jpg";

image.Load((LPCTSTR)path);//此处,强制转换

图片加载失败。

下面是利用CString以后,

CImage image;

char * path="C:\Users\Administrator\Documents\Visual Studio 2010\Projects\***\IMAGES\****\0000284n.jpg";

CString strpath=path;

image.Load((LPCTSTR)strpath);

图片加载成功。