GDI含义是图形设备接口,主要任务是负责系统与绘图程序之间的信息交换,处理所有Windows程序的图形输出。GDI的出现使程序员无需要关心硬件设备及设备驱动,就可以将应用程序的输出转化为硬件设备上的输出,实现了程序开发者与硬件设备的隔离,大大方便了开发工作。
通常,在使用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。
参考文章:
http://blog.csdn.net/desow/article/details/4592847
http://blog.sina.com.cn/s/blog_5f8817250100f5o6.html
http://blog.csdn.net/awillaway/article/details/8459608