using
namespace Gdiplus
要么要用
Gdiplus::Image
通常,在使用VC开发图像时,C/C++的默认库将不能提供足够的支持。所以要使用附加的库来实现图像的开发工作。通常,这样的库包括GDI,GDI+,OpenGL等。本文实现了在VC2010上配置GDI+(图像库)环境的方法。1. 新建一个Win32工程,在这里选择vc默认的非空白项目。
#include<gidplus.h>
using namespacegdiplus
#pragmacomment(lib, "gdiplus.lib")
3. 如果直接这样用的话,编译就可能会出现错误,有上百个错误,而且错误显示是在系统文件里面。
4. 在网上查找原因,有两种方案解决这个问题: 1)把#define WIN32_LEAN_AND_MEAN宏注释了,这样再加入GDI+相关的东西,就不会出错。2)在stdafx.h头文件里加入#include <comdef.h>,这样也可以解决这个问题。
5. 我在自己的工程上实验了一下,发现在stdafx.h上更本找不到宏定义,所以也不存在注释的可能。然而,使用第二中情况,也遇到了问题。在头文件末尾添加<comdef.h>并不能改变编译错误。
6. 最后尝试变换了添加顺序接解决了这个问题。现头文件如下:
#pragma once
#include "targetver.h"
#include <comdef.h>
#include <stdio.h>
#include <tchar.h>
#define ULONG_PTR ULONG
#include <gdiplus.h>
using namespace Gdiplus
#pragma comment(lib,"gdiplus.lib")
// TODO: 在此处引用程序需要的其他头文件
7. 除了用以上的方法连接gdiplus.lib之外,还可以在Project->Settings->Link->Object/library modules中输入gdiplus.lib(若有多个库,可用空格隔开,但GDI+只有一个库)。这种方法,可不用在StdAfx.h中输入#pragma comment。
1你改成Image *backimg=new Image(L"G:\\QQ图片20170202181354.png")
delete backimg
backimg=new Image(.......)
delete backimg
不就行了?
2.http://blog.csdn.net/xuqiang918/article/details/32076565
参考一下这篇文档,里面有一个LPSTREAM类型的变量,其实就是 IStream*
gdi+ Image类构造函数中有一个是接收这个参数的。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)