【gdiplus.h问题】

之前用GUI+的时候一直都是用的

#include <gdiplus.h>
#pragma comment(lib, "gdiplus.lib")
using namespace Gdiplus;

但是偶发现当多个文件包含的时候,会报很多错误~~

1>f:\vs2013\vc\include\gdiplusenums.h(29): error C2146: 语法错误: 缺少“;”(在标识符“GraphicsState”的前面)
...
...
1>f:\vs2013\vc\include\gdiplusenums.h(607): fatal error C1003: 错误计数超过 100;正在停止编译

我的代码大概是这样的

A.h

A.cpp


#include "A.h"
#include "B.h"

int main(int argc, char *argv[])
{
return 0;
}

B.h

B.cpp

#include "B.h"
#include <gdiplus.h>
#pragma comment(lib, "gdiplus.lib")
using namespace Gdiplus;

//do anything

一开始,我也以为是不是文件的包含重复了(其实不是)

当然经过一番百度(很久很久...)最后终于发现一个能解决的方法.

即在使用gdiplus.h之前添加

#include <comdef.h>

问题解决。。。。

再看看comdef.h的注释

comdef.h - Native C++ compiler COM support - main definitions header

虽然问题解决了,但是不知道为什么??先记录下来,如果有哪位大侠知道,希望能告诉偶!!

转载请注明出处:http://www.cnblogs.com/Susake/p/3721777.html

【gdiplus.h问题】,布布扣,bubuko.com

时间: 2024-10-17 12:13:24

【gdiplus.h问题】的相关文章

VS2015--win32工程配置的一些想法之GdiplusTypes.h(470) : error C3861: &#39;min&#39;: identifier not found

一次一次地,乐此不疲的掉入自己挖的坑儿. 之前博客<VS2015–win32工程配置的一些想法之算法min/max与windows中的 min/max宏冲突>写了如何处理algorithm中std:min和windows中min的冲突问题,我们用到了预处理器NOMINMAX. 标准库在<algorithm>头中定义了两个模板函数std::min() 和 std::max(). 通常用它可以计算某个值对的最小值和最大值.可惜在 Visual C++ 无法使用它们,因为没有定义这些函数

GDIplus的初次接触--加载并显示常用格式图片

在没有接触Gdiplus之前,在vc中绘制图片,通常加载一张位图,然后进行贴图.对于现在多种多样的图片格式,之前的GDI并不支持(应该是这样的,呵呵).而使用Gdiplus则可以选择多种图片格式,比如BMP, ICON, GIF, JPEG, Exif, PNG, TIFF, WMF, and EMF. 下面就介绍下首次接触Gdiplus的一个简单应用. 一.包括相应的头文件及引入相应的lib <span style="white-space:pre"> </span

GdiPlus使用方法

GDI是Graphics Device Interface的缩写,含义是图形设备接口,它的主要任务是负责系统与绘图程序之间的信息交换,处理所有Windows程序的图形输出. 在Windows操作系统下,绝大多数具备图形界面的应用程序都离不开GDI,我们利用GDI所提供的众多函数就可以方便的在屏幕.打印机及其它输出设备上输出图形,文本等操作.GDI的出现使程序员无需要关心硬件设备及设备驱动,就可以将应用程序的输出转化为硬件设备上的输出,实现了程序开发者与硬件设备的隔离,大大方便了开发工作. GDI

Gdiplus

#include <Gdiplus.h>using namespace Gdiplus; //声明Gdiplus::GdiplusStartupInput m_gdiplusStartupInput; ULONG_PTR m_gdiplusToken; Image * m_pImage; //构造GdiplusStartup(&m_gdiplusToken, &m_gdiplusStartupInput, NULL); m_pImage= NULL; CString sPath

Gdiplus的使用

使用步骤: 1.包括相应的头文件及引入相应的lib 1 #include <GdiPlus.h> 2 #pragma comment(lib, "gdiplus.lib") 3 4 using namespace Gdiplus; 2.初始化Gdiplus 1 Gdiplus::GdiplusStartupInput m_gdiplusStartupInput; 2 ULONG_PTR m_gdiplusToken; 3 4 GdiplusStartup( &m_g

GDIPlus的使用准备工作

GDIPlus的使用 stdafx.h加入如下代码: #include <comdef.h>//初始化一下com口 #include "GdiPlus.h" using namespace Gdiplus; #pragma comment(lib,"gdiplus.lib") 开始初始化:在app类的声明里(.h)加入: ULONG_PTR m_gdiplusToken; InitInstance()里,在DoModal()函数的前面,加入://若没有u

vs2008中使用gdi+的设置

vs2008中使用gdi+ 1.新建一个mfc工程 2.在stdafx.h文件中加入以下几行语句:#include <gdiplus.h>                //#pragma comment(lib, "gdiplus.lib") //在工程属性中添加亦可using namespace Gdiplus;            //使用GDI+的命名空间, 若不用的话每次使用Gdiplus时均加上命名空间亦可 3.修改App类在App类(以下例子中为CTestA

win32用GDI+加载png图片作为背景图

#include <windows.h> #include <gdiplus.h> /* GDI+ startup token */ ULONG_PTR gdiplusStartupToken; /* Declare Windows procedure */ LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM); // UpdateLayeredWindow Defination typedef BOOL(*UP

纯win32实现PNG图片透明窗体

#include <windows.h> #include <gdiplus.h> /*  GDI+ startup token */ ULONG_PTR gdiplusStartupToken; /*  Declare Windows procedure  */ LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM); // UpdateLayeredWindow Defination typedef BOOL(