VC++编程使用GDI+无法使用Image

VC++编程使用GDI+无法使用Image,第1张

Image在Gdiplus命名空间中的,所以你要么前面加

using

namespace Gdiplus

要么要用

Gdiplus::Image

通常,在使用VC开发图像时,C/C++的默认库将不能提供足够的支持。所以要使用附加的库来实现图像的开发工作。通常,这样的库包括GDI,GDI+,OpenGL等。本文实现了在VC2010上配置GDI+(图像库)环境的方法。

1. 新建一个Win32工程,在这里选择vc默认的非空白项目。

2. 在头文件“stdafx.h”最后末尾处中添加:

#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类构造函数中有一个是接收这个参数的。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6703435.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-27
下一篇 2023-03-27

发表评论

登录后才能评论

评论列表(0条)

保存