利用GDI+实现图像类型转换
发表在C语言图书答疑 2015-11-14
是否精华
版块置顶:
《visual C++从入门到精通》(第3版)326页,利用GDI+实现图像类型转换,我运行光盘上的程序时出错,另外我看了Gdiplus文件夹中的文件,这些文件的图标和视频的不一样。其中错误如下所示,能否说一下这是什么问题?谢谢.
 Compiling...
ConvertImage.cpp
e:\c++资料\tm(视频讲解及实例源程序)\sl(实例源程序)\12\16\convertimage\gdiplus\\gdiplusinit.h(39) : error C2065: 'ULONG_PTR' : undeclared identifier
e:\c++资料\tm(视频讲解及实例源程序)\sl(实例源程序)\12\16\convertimage\gdiplus\\gdiplusinit.h(39) : error C2065: 'token' : undeclared identifier
e:\c++资料\tm(视频讲解及实例源程序)\sl(实例源程序)\12\16\convertimage\gdiplus\\gdiplusinit.h(39) : error C2165: 'left-side modifier' : cannot modify pointers to data
e:\c++资料\tm(视频讲解及实例源程序)\sl(实例源程序)\12\16\convertimage\gdiplus\\gdiplusinit.h(39) : error C2071: 'NotificationHookProc' : illegal storage class
e:\c++资料\tm(视频讲解及实例源程序)\sl(实例源程序)\12\16\convertimage\gdiplus\\gdiplusinit.h(40) : error C2146: syntax error : missing ')' before identifier 'token'
e:\c++资料\tm(视频讲解及实例源程序)\sl(实例源程序)\12\16\convertimage\gdiplus\\gdiplusinit.h(40) : error C2165: 'left-side modifier' : cannot modify pointers to data
e:\c++资料\tm(视频讲解及实例源程序)\sl(实例源程序)\12\16\convertimage\gdiplus\\gdiplusinit.h(40) : error C2071: 'NotificationUnhookProc' : illegal storage class
e:\c++资料\tm(视频讲解及实例源程序)\sl(实例源程序)\12\16\convertimage\gdiplus\\gdiplusinit.h(40) : error C2059: syntax error : ')'
e:\c++资料\tm(视频讲解及实例源程序)\sl(实例源程序)\12\16\convertimage\gdiplus\\gdiplusinit.h(91) : error C2059: syntax error : 'const'
e:\c++资料\tm(视频讲解及实例源程序)\sl(实例源程序)\12\16\convertimage\gdiplus\\gdiplusinit.h(97) : error C2146: syntax error : missing ')' before identifier 'token'
e:\c++资料\tm(视频讲解及实例源程序)\sl(实例源程序)\12\16\convertimage\gdiplus\\gdiplusinit.h(97) : warning C4229: anachronism used : modifiers on data are ignored
e:\c++资料\tm(视频讲解及实例源程序)\sl(实例源程序)\12\16\convertimage\gdiplus\\gdiplusinit.h(97) : error C2182: 'GdiplusShutdown' : illegal use of type 'void'
e:\c++资料\tm(视频讲解及实例源程序)\sl(实例源程序)\12\16\convertimage\gdiplus\\gdiplusinit.h(97) : error C2059: syntax error : ')'
e:\c++资料\tm(视频讲解及实例源程序)\sl(实例源程序)\12\16\convertimage\convertimagedlg.h(27) : error C2146: syntax error : missing ';' before identifier 'm_pGdiToken'
e:\c++资料\tm(视频讲解及实例源程序)\sl(实例源程序)\12\16\convertimage\convertimagedlg.h(27) : error C2501: 'ULONG_PTR' : missing storage-class or type specifiers
e:\c++资料\tm(视频讲解及实例源程序)\sl(实例源程序)\12\16\convertimage\convertimagedlg.h(27) : error C2501: 'm_pGdiToken' : missing storage-class or type specifiers
ConvertImageDlg.cpp
e:\c++资料\tm(视频讲解及实例源程序)\sl(实例源程序)\12\16\convertimage\gdiplus\\gdiplusinit.h(39) : error C2065: 'ULONG_PTR' : undeclared identifier
e:\c++资料\tm(视频讲解及实例源程序)\sl(实例源程序)\12\16\convertimage\gdiplus\\gdiplusinit.h(39) : error C2065: 'token' : undeclared identifier
e:\c++资料\tm(视频讲解及实例源程序)\sl(实例源程序)\12\16\convertimage\gdiplus\\gdiplusinit.h(39) : error C2165: 'left-side modifier' : cannot modify pointers to data
e:\c++资料\tm(视频讲解及实例源程序)\sl(实例源程序)\12\16\convertimage\gdiplus\\gdiplusinit.h(39) : error C2071: 'NotificationHookProc' : illegal storage class
e:\c++资料\tm(视频讲解及实例源程序)\sl(实例源程序)\12\16\convertimage\gdiplus\\gdiplusinit.h(40) : error C2146: syntax error : missing ')' before identifier 'token'
e:\c++资料\tm(视频讲解及实例源程序)\sl(实例源程序)\12\16\convertimage\gdiplus\\gdiplusinit.h(40) : error C2165: 'left-side modifier' : cannot modify pointers to data
e:\c++资料\tm(视频讲解及实例源程序)\sl(实例源程序)\12\16\convertimage\gdiplus\\gdiplusinit.h(40) : error C2071: 'NotificationUnhookProc' : illegal storage class
e:\c++资料\tm(视频讲解及实例源程序)\sl(实例源程序)\12\16\convertimage\gdiplus\\gdiplusinit.h(40) : error C2059: syntax error : ')'
e:\c++资料\tm(视频讲解及实例源程序)\sl(实例源程序)\12\16\convertimage\gdiplus\\gdiplusinit.h(91) : error C2059: syntax error : 'const'
e:\c++资料\tm(视频讲解及实例源程序)\sl(实例源程序)\12\16\convertimage\gdiplus\\gdiplusinit.h(97) : error C2146: syntax error : missing ')' before identifier 'token'
e:\c++资料\tm(视频讲解及实例源程序)\sl(实例源程序)\12\16\convertimage\gdiplus\\gdiplusinit.h(97) : warning C4229: anachronism used : modifiers on data are ignored
e:\c++资料\tm(视频讲解及实例源程序)\sl(实例源程序)\12\16\convertimage\gdiplus\\gdiplusinit.h(97) : error C2182: 'GdiplusShutdown' : illegal use of type 'void'
e:\c++资料\tm(视频讲解及实例源程序)\sl(实例源程序)\12\16\convertimage\gdiplus\\gdiplusinit.h(97) : error C2059: syntax error : ')'
e:\c++资料\tm(视频讲解及实例源程序)\sl(实例源程序)\12\16\convertimage\convertimagedlg.h(27) : error C2146: syntax error : missing ';' before identifier 'm_pGdiToken'
e:\c++资料\tm(视频讲解及实例源程序)\sl(实例源程序)\12\16\convertimage\convertimagedlg.h(27) : error C2501: 'ULONG_PTR' : missing storage-class or type specifiers
e:\c++资料\tm(视频讲解及实例源程序)\sl(实例源程序)\12\16\convertimage\convertimagedlg.h(27) : error C2501: 'm_pGdiToken' : missing storage-class or type specifiers
E:\c++资料\TM(视频讲解及实例源程序)\sl(实例源程序)\12\16\ConvertImage\ConvertImageDlg.cpp(119) : error C2065: 'GdiplusStartup' : undeclared identifier
E:\c++资料\TM(视频讲解及实例源程序)\sl(实例源程序)\12\16\ConvertImage\ConvertImageDlg.cpp(119) : error C2065: 'm_pGdiToken' : undeclared identifier
Generating Code...
执行 cl.exe 时出错.
Creating browse info file...

ConvertImage.exe - 1 error(s), 0 warning(s)
分享到:
精彩评论 1
学分: LV1
TA的每日心情
开心
2020-06-16 09:16:38
2015-11-14
沙发
将ConvertImageDlg.h文件修改一下,前面修改为:


#pragma comment(lib, "gdi//gdiplus.lib")
#define ULONG_PTR ULONG

#include "gdi/GdiPlus.h"
using namespace Gdiplus;


添加了添加#define ULONG_PTR ULONG ,GDI++是WIndows Platform SDK不是MFC的一部分,而ULONG_PTR在SDK中的定义与MFC中的定义相冲突。
首页上一页 1 下一页尾页 1 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照