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

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

如:

CImage image;

char * path="C:UsersAdministratorDocumentsVisual Studio 2010Projects***IMAGES****000284n.jpg";

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

图片加载失败。

下面是利用CString以后,

CImage image;

char * path="C:UsersAdministratorDocumentsVisual Studio 2010Projects***IMAGES****000284n.jpg";

CString strpath=path;

image.Load((LPCTSTR)strpath);

图片加载成功。

原文地址:https://www.cnblogs.com/james1207/p/3297311.html