您的位置:首页 > 其它

Directx SDK9.0b 中的程序在VS2005中编译中的一些问题

2012-10-13 09:08 197 查看


Directx SDK9.0b 中的程序在VS2005中编译中的一些问题

DirectX SDK90b版本的例子BaseClasses在VS2005编译会有错。

1.operator=(LONG)错误

COARefTime(LONG);

//(LONG)operator=(LONG);

COARefTime& operator=(LONG);没有返回类型(winnt.h文件中)

2.VS2005中在循环里面定义变量的作用域问题。这是那行在有Count的for循环语句中出现的错误。

3.winnt.h文件里typedef void * POINTER_64 PVOID64的错误

POINTER_64是一个宏,在64位编译下起作用,它包含在SDK目录下的BASETSD.H中(Microsoft Visual Studio 8\VC\PlatformSDK\Include\basetsd.h(23):#define POINTER_64 __ptr64),但DXSDK自己也带了一个basetsd.h,里面没有定义POINTER_64,从而导致出错。

方法1:在Tools -> Options -> Projects and Solutions -> VC++ Directories -> Include Files里确保系统包含目录(以S打头的)在最前面,同时在 project properties下面的“C/C++ -> General”中确保“Additional Include Directories”为空(因为它会被优先编译,这样就轮不到VC\PlatformSDK\Include\basetsd.h),所有的包含目录都应该在上面的include里面。这种方法不用改代码。

方法2:

在DXSDK自己的basetsd.h里自己定义#define POINTER_64 __ptr64

Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1482188
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐