|
|
最近自己做了一个视频接口,想同时支持direct8和direct9,单独使用其中一个接口没有任何问题,但是一旦将两接口同时参与编译就会出现诸如:
1>d:\directX8.1\include\d3d8.h(27) : warning C4005: “D3D_SDK_VERSION”: 宏重定义
1> d:\dx9sdk\include\d3d9.h(27) : 参见“D3D_SDK_VERSION”的前一个定义
1>d:\directx8.1\include\d3d8types.h(155) : error C2011: “_D3DLIGHTTYPE”: “enum”类型重定义
1> d:\dx9sdk\include\d3d9types.h(163) : 参见“_D3DLIGHTTYPE”的声明
1>d:\directx8.1\include\d3d8types.h(189) : error C2011: “_D3DSHADEMODE”: “enum”类型重定义
1> d:\dx9sdk\include\d3d9types.h(197) : 参见“_D3DSHADEMODE”的声明
1>d:\directx8.1\include\d3d8types.h(196) : error C2011: “_D3DFILLMODE”: “enum”类型重定义
1> d:\dx9sdk\include\d3d9types.h(204) : 参见“_D3DFILLMODE”的声明
1>d:\directx8.1\include\d3d8types.h(208) : error C2011: “_D3DBLEND”: “enum”类型重定义
的错误,在网上摸索了几天没有发现解决办法。
Irrlicht引擎也同时支持direct8和direct9,试着分析了其代码,可惜小弟才疏学浅,没有发现其中玄机。
望达人指教! |
|