zoukankan      html  css  js  c++  java
  • 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);

    图片加载成功。

  • 相关阅读:
    区块链
    黑帽内容整理
    编程语言
    编程语言
    PHP
    安全体系建设-OWASP
    burp
    编程语言-Python-GUI
    加解密
    结合自己的程序对thinkphp模板常量的理解
  • 原文地址:https://www.cnblogs.com/james1207/p/3297311.html
Copyright © 2011-2022 走看看