第一贴50分;http://community.csdn.net/Expert/TopicView3.asp?id=3672152
第二贴50分:http://community.csdn.net/Expert/TopicView3.asp?id=3672123
在win2000下安装了The Platform SDK for Windows XP Service Pack 2后,有了gdiplus.h和gdiplus.lib
又在微软件的网站上下载了gdiplus.dll,在一个工程中,使用GDI+出现如下错误,
Compiling...
StdAfx.cpp
C:\PROGRAM FILES\MICROSOFT PLATFORM SDK FOR WINDOWS XP SP2\INCLUDE\GdiplusInit.h(32) : error C2065: 'ULONG_PTR' : undeclared identifier
C:\PROGRAM FILES\MICROSOFT PLATFORM SDK FOR WINDOWS XP SP2\INCLUDE\GdiplusInit.h(32) : error C2065: 'token' : undeclared identifier
C:\PROGRAM FILES\MICROSOFT PLATFORM SDK FOR WINDOWS XP SP2\INCLUDE\GdiplusInit.h(32) : error C2165: 'left-side modifier' : cannot modify pointers to data
C:\PROGRAM FILES\MICROSOFT PLATFORM SDK FOR WINDOWS XP SP2\INCLUDE\GdiplusInit.h(32) : error C2071: 'NotificationHookProc' : illegal storage class
C:\PROGRAM FILES\MICROSOFT PLATFORM SDK FOR WINDOWS XP SP2\INCLUDE\GdiplusInit.h(33) : error C2146: syntax error : missing ')' before identifier 'token'
C:\PROGRAM FILES\MICROSOFT PLATFORM SDK FOR WINDOWS XP SP2\INCLUDE\GdiplusInit.h(33) : error C2165: 'left-side modifier' : cannot modify pointers to data
C:\PROGRAM FILES\MICROSOFT PLATFORM SDK FOR WINDOWS XP SP2\INCLUDE\GdiplusInit.h(33) : error C2071: 'NotificationUnhookProc' : illegal storage class
C:\PROGRAM FILES\MICROSOFT PLATFORM SDK FOR WINDOWS XP SP2\INCLUDE\GdiplusInit.h(33) : error C2059: syntax error : ')'
C:\PROGRAM FILES\MICROSOFT PLATFORM SDK FOR WINDOWS XP SP2\INCLUDE\GdiplusInit.h(86) : error C2059: syntax error : 'const'
C:\PROGRAM FILES\MICROSOFT PLATFORM SDK FOR WINDOWS XP SP2\INCLUDE\GdiplusInit.h(95) : error C2146: syntax error : missing ')' before identifier 'token'
C:\PROGRAM FILES\MICROSOFT PLATFORM SDK FOR WINDOWS XP SP2\INCLUDE\GdiplusInit.h(95) : warning C4229: anachronism used : modifiers on data are ignored
C:\PROGRAM FILES\MICROSOFT PLATFORM SDK FOR WINDOWS XP SP2\INCLUDE\GdiplusInit.h(95) : error C2182: 'GdiplusShutdown' : illegal use of type 'void'
C:\PROGRAM FILES\MICROSOFT PLATFORM SDK FOR WINDOWS XP SP2\INCLUDE\GdiplusInit.h(95) : error C2059: syntax error : ')'
C:\PROGRAM FILES\MICROSOFT PLATFORM SDK FOR WINDOWS XP SP2\INCLUDE\GdiplusFlat.h(2639) : warning C4229: anachronism used : modifiers on data are ignored
C:\PROGRAM FILES\MICROSOFT PLATFORM SDK FOR WINDOWS XP SP2\INCLUDE\GdiplusFlat.h(2639) : error C2440: 'initializing' : cannot convert from 'int' to 'enum Gdiplus::Status'
Conversion to enumeration type requires an explicit cast (static_cast, C-style cast or function-style cast)
C:\PROGRAM FILES\MICROSOFT PLATFORM SDK FOR WINDOWS XP SP2\INCLUDE\GdiplusFlat.h(2644) : error C2146: syntax error : missing ')' before identifier 'token'
C:\PROGRAM FILES\MICROSOFT PLATFORM SDK FOR WINDOWS XP SP2\INCLUDE\GdiplusFlat.h(2644) : warning C4229: anachronism used : modifiers on data are ignored
C:\PROGRAM FILES\MICROSOFT PLATFORM SDK FOR WINDOWS XP SP2\INCLUDE\GdiplusFlat.h(2644) : error C2182: 'GdiplusNotificationUnhook' : illegal use of type 'void'
C:\PROGRAM FILES\MICROSOFT PLATFORM SDK FOR WINDOWS XP SP2\INCLUDE\GdiplusFlat.h(2644) : error C2059: syntax error : ')'
Error executing cl.exe.
我发完这个贴就剩10分了,大家帮忙呀。

解决方案 »

  1.   

    唉,下载一份GDI+的头文件,然后在VC6里面引用,确保你有GDIPlus.dll这个DLL文件,然后就可以写GDI+的程序了
      

  2.   

    The Platform SDK for Windows XP Service Pack 2?
    下载普通的Platform SDK即可,例如(Microsoft Platform SDK February 2003),GdiPlus的头文件和库文件都在里面,就可以用了。
      

  3.   


    #ifndef  WINVER
    #define  WINVER 0x0410
    #endif #ifndef ULONG_PTR
    #define ULONG_PTR unsigned long*
    #endif
      

  4.   

    下载普通的Platform SDK即可,例如(Microsoft Platform SDK February 2003),GdiPlus的头文件和库文件都在里面,就可以用了。
      

  5.   

    在vc菜单里面的tools->options...
    里面的Directories的"include files"里面添加上sdk的include目录
      

  6.   

    在vc菜单里面的tools->options...
    里面的Directories的"include files"里面添加上sdk的include目录
      

  7.   

    同感阿。我跟楼主一样,什么东西都下全了,还是写上GDI+程度还是不能用。总出错。按照楼上两位的什么include files的也弄了,还是不行。是不是得装相应版本的sdk啊?
      

  8.   

    tools->option->direction,在头文件路径的设置里面把sdk的头文件移到最前面
      

  9.   

    参考:http://www.vckbase.com/document/viewdoc/?id=1177
    首先要注册SDK的路径。使用:
    tools->option->direction,在头文件路径的设置里面把sdk的头文件移到最前面
    或者运行开始菜单中的SDK项中的注册菜单项程序!
      

  10.   

    Visual Studio Registeration-》Register PSDK。
      

  11.   

    楼主怎么发了那么多帖子哦~这个原因是sdk和vc的头文件有名字重复的,但是vc自己带的里面没有那几个东西的定义,所以要把sdk的路径放在最前面,顺序很重要!我刚开始也觉得很奇怪,知道原因后就明白了!
      

  12.   

    我前两天刚弄过。不过我下的是Windows 2003SDK。安装完成后,在tools的option里的directory里设置include和library。然后在project的setting里的link设置gdiplus.lib。然后在你的程序中引用gdiplus的头文件,并using namespace gdiplus即可。