现在的位置: 首页 > 自动控制 > 工业·编程 > 正文

解决typedef void * POINTER_64 PVOID64问题

2014-03-24 21:55 工业·编程 ⁄ 共 695字 ⁄ 字号 暂无评论
文章目录

问题描述

1>d:\vs2005\vc\platformsdk\include\winnt.h(222) : error C2146: 语法错误 : 缺少“;”(在标识符“PVOID64”的前面)

1>d:\vs2005\vc\platformsdk\include\winnt.h(222) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int

1>d:\vs2005\vc\platformsdk\include\winnt.h(5940) : error C2146: 语法错误 : 缺少“;”(在标识符“Buffer”的前面)

1>d:\vs2005\vc\platformsdk\include\winnt.h(5940) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int

1>d:\vs2005\vc\platformsdk\include\winnt.h(5940) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int

解决方法

方法1:

typedef void *PVOID;

typedef void * POINTER_64 PVOID64;

在它之前加下:

#define POINTER_64 __ptr64

方法2:

调整include文件夹的顺序来解决问题,platform SDK中的winnt.h

DDK中的,vs自带的winnt.h有多个。 dxsdk 中的这些所用到的winnt.h版本不同。

通过调整IDE 工具-> 选项-> 项目vc++目录;包含文件include 的顺序来解决这类问题。

使dxsdk需要的winnt.h所在文件夹在最上面.

给我留言

留言无头像?