December 5, 2008
使用DirectShow 时候出现的PVOID64xxxx错误的解决办法
错误提示:
C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\include\winnt.h(222) : error C2146: syntax error : missing ‘;’ before identifier ‘PVOID64′
问题原因:
VC6.0和2005中对于POINTER_64的定义不同:
6.0是在winnt.h中定义的,然后再包含basetsd.h,
8.0是直接在basetsd.h中定义的。
而DirectShow SDK里自带basetsd.h, 是为了兼容VC6的,但里面没有POINTER_64的定义。
所以,
在VC2005下面,不应该包含旧的basetsd.h
在VC6.0下面,需要使用DXSDK自带的basetsd.h,
解决办法:
把DXSDK\include\basetsd.h放在一个单独的目录里,
例如:DXSDK\include\vc6\basetsd.h
添加到VC6.0的include路径中,而在vc2005中不添加它
此解决办法是整理自instemast的帖子在
http://hack.gameres.com/showthread.asp?threadid=47059
Comments(2)
