用VS2010+DX8.0编译freakout
最近心血来潮,研究了下<windows游戏编程大师技巧>这本书,由于本机安装的VS2010, 而Freakout程序则是用的旧版的SDK,互不兼容。总是出现如下的错误:
......\winnt.h(222) : error C2146: syntax error : missing ';' before identifier 'PVOID64'
解决如下:
如上图所示,取消从父项目或是项目默认的包含文件夹,添加本项目所需要的文件夹,然后让DX8的包含目录处于最下面,然后保存,重新编译,成功!
原因如下:
POINTER_64 是一个宏,在64位编译下起作用,它包含在SDK目录下的BASETSD.H中,但是DXSDK自己也带了一个basetsd.h,里面没有定义POINTER_64,从而导致出错,只需要改变include files的优先级即可。