• 博客园logo
  • 会员
  • 周边
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
james1207

博客园    首页    新随笔    联系   管理    订阅  订阅

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

最近,在写一些东西的时候,需要用到CImage类将JPG各式的图片转换成BMP图片,传入的是图片的绝对地址:如C:\Users\Administrator\Documents\Visual Studio 2010\Projects\***\IMAGES\****\0000284n.jpg。但是再用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);

图片加载成功。

posted @ 2013-09-02 19:19  Class Xman  阅读(727)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3