|
VC2005下编译DirectX9.0的SDK问题
VC2005下编译DirectX9.0的SDK问题
编译$(DXSDK)\Samples\C++\DirectShow\BaseClasses下的BaseClasses时出错
Compiling...
dllentry.cpp
C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\include\winnt.h(222) : error C2146: syntax error : missing ';' before identifier 'PVOID64'
C:\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
C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\include\winnt.h(5940) : error C2146: syntax error : missing ';' before identifier 'Buffer'
C:\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
C:\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
c:\DXSDK\include\uuids.h : warning C4819: The file contains a character that cannot be represented in the current code page (936). Save the file in Unicode format to prevent data loss
Winnt.h 222行
typedef void * POINTER_64 PVOID64;
在vc的目录下grep了一把POINTER_64, 发现定义在$(VC)\PlatformSDK\Include的basetsd.h 38行
#define POINTER_64 __ptr64
分明有定义,怪了。
加上/E /P看预处理文件文件,才发现其中奥秘
dllentry.i 6172行
#line 1 "c:\\DXSDK\\include\\basetsd.h"
水落石出!没有包含vc自带的basetsd,include路径设置有问题。在project的property pages中把Additional Include Directories中把 "..\..\..\..\include"去掉就OK了
我也是出现和他一样的问题,可是按他的做了后还是老问题,请高手具体说明怎么导入库,怎么编译的方法,谢谢大家了
[em3] [em3] |
|