GDI+的错误(转)


1.error C2065: 'ULONG_PTR' : undeclared identifier

问题原因:GDI++是WIndows Platform SDK不是MFC的一部分,而ULONG_PTR在SDK中的定义与MFC中的定义相冲突,所以,会出现此问题。

解决办法:添加#define ULONG_PTR ULONG ,具体如下:

#define ULONG_PTR ULONG

#include "GdiPlus.h"

#pragma comment(lib, "gdiplus.lib")
using namespace Gdiplus;

2.error  C2501:  'MIDL_INTERFACE '  : missing  storage-class  or  type  specifiers

error  C2501:  'Gdiplus::PropertyItem::PROPID ' :  missing  storage-class  or  type  specifiers

问题原因:GDI+需要一些COM定义
解决办法:#include 

还有一种解决方法就是在 头文件中注释掉:
    #define  WIN32_LEAN_AND_MEAN //  从  Windows  头中排除极少使用的资料

3.DllExports::GdipGetImageEncodersSize 调用错误

Gdiplus::GetImageEncodersSize(&num, &size);

GetImageEncodersSize( OUT UINT *numEncoders, OUT UINT *size) { return DllExports::GdipGetImageEncodersSize(numEncoders, size); }

提示在0x7c93ac4a处未处理的异常:0xC0000005:写入位置0x00000010时发生访问冲突。

原因:没有先调用GdiplusStartup(&gdiToken, &gdiStartInput, NULL);

解决方法:如果是单独作为一个动态库,在入口调用GdiplusStartup(&gdiToken, &gdiStartInput, NULL);在出口调用GdiplusShutdown(gdiToken); 初始化GDI+是必须的,而且应该放在全局中。


原博客地址转自::http://hi.baidu.com/darker_undermoon/blog/item/7d7ac81278019b06972b4307.html

你可能感兴趣的:(GDI+的错误(转))