织梦CMS - 轻松建站从此开始!

罗索实验室

当前位置: 主页 > 杂项技术 > VC(MFC) >

vc编译error C2146: \'PVOID64\'

罗索客 发布于 2008-01-09 09:48 点击:次 
error C2146: syntax error : missing \';\' before identifier \'PVOID64\' 由 directdraw 的升级引起 编译时,遇到了一个比较奇怪的问题,在编译时报如下错误:2>d:\\program files\\microsoft visual studio 8\\vc\\platformsdk\\include\\winnt.h(222) :error C214
TAG:

error C2146: syntax error : missing ';' before identifier 'PVOID64' 由 directdraw 的升级引起

编译时,遇到了一个比较奇怪的问题,在编译时报如下错误: 2>d:\\program files\\microsoft visual studio 8\\vc\\platformsdk\\include\\winnt.h(222) :error C2146: syntax error : missing ';' before identifier 'PVOID64' 2>d:\\program files\\microsoft visual studio 8\\vc\\platformsdk\\include\\winnt.h(222) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int 2>d:\\program files\\microsoft visual studio 8\\vc\\platformsdk\\include\\winnt.h(5940) : error C2146: syntax error : missing ';' before identifier 'Buffer' 2>d:\\program files\\microsoft visual studio 8\\vc\\platformsdk\\include\\winnt.h(5940) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int 2>d:\\program files\\microsoft visual studio 8\\vc\\platformsdk\\include\\winnt.h(5940) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int 我的编译环境为visual studio 2005 SP1(由于在vista下,所以还打了vs2005 for vista的补丁)。 打开winnt.h文件,发现问题就是在winnt.h头文件中无POINTER_64的定义造成的。搜索vc下的头文件,发现在basetsd.h头文件中有POINTER_64的定义,而在winnt.h头文件中也包含了该头文件。于是直接把basetsd.h头文件中关于POINTER_64的宏定义(#define POINTER_64 __ptr64)抄过来,放在 typedef void *PVOID; typedef void * POINTER_64 PVOID64; 这两句的前面,再编译就无该问题了。 虽然如此解决了编译问题,但总觉得不妥,于是又在网上搜了一下。发现也有人跟我一样的解决,但在microsoft的论坛上发现问题其实是头文件搜索顺序引起的。由于我安装了dxsdk9,dxsdk9的头文件搜索顺序在platformsdk之前。而在dxsdk9中也有basetsd.h头文件,而该文件无POINTER_64的定义,因此编译通不过。调整头文件搜索顺序后,编译就无问题了。 附:很久没用过vc了,手生,^_^。

解决方法:在winnt.h中加上以下语句

#define POINTER_64 __ptr64

typedef void *PVOID;
typedef void * POINTER_64 PVOID64;

[align=right][color=#000066][此贴子已经被作者于2008-8-30 15:22:25编辑过][/color][/align] (iwgh)
本站文章除注明转载外,均为本站原创或编译欢迎任何形式的转载,但请务必注明出处,尊重他人劳动,同学习共成长。转载请注明:文章转载自:罗索实验室 [http://www1.rosoo.net/a/200801/6877.html]
本文出处: 作者:iwgh
顶一下
(1)
100%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
将本文分享到微信
织梦二维码生成器
推荐内容