(书本是VC 6.0和vs2013不同)
一、
1.1.点击右键属性-》配置属性-》C/C++-》附加包含目录:里面添加DirectX SDK的include文件路径:(如:D:\3D游戏编程大师技巧\SDK %28C++%29\Include)
1.2点击右键属性-》链接器-》常规-》附加库目录:里面添加DirectX SDK的lib文件路径:(如:D:\3D游戏编程大师技巧\SDK %28C++%29\Lib)
1.3点击右键属性-》链接器-》输入-》附加依赖项:里面添加所需要的lib名称:ddraw.lib;dsound.lib;dinput.lib;dinput8.lib;winmm.lib;(winmm.lib如我的在C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib找到,然后copy到你的lib文件目录下)
如果未添加winmm.lib会在vs 2013 环境下出现以下error:
1>t3dlib3.obj : error LNK2019: 无法解析的外部符号 __imp__mmioAscend@12,该符号在函数 "int __cdecl DSound_Load_WAV(char *,int)" (?DSound_Load_WAV@@YAHPADH@Z) 中被引用 1>t3dlib3.obj : error LNK2019: 无法解析的外部符号 __imp__mmioRead@12,该符号在函数 "int __cdecl DSound_Load_WAV(char *,int)" (?DSound_Load_WAV@@YAHPADH@Z) 中被引用 1>t3dlib3.obj : error LNK2019: 无法解析的外部符号 __imp__mmioClose@8,该符号在函数 "int __cdecl DSound_Load_WAV(char *,int)" (?DSound_Load_WAV@@YAHPADH@Z) 中被引用 1>t3dlib3.obj : error LNK2019: 无法解析的外部符号 __imp__mmioDescend@16,该符号在函数 "int __cdecl DSound_Load_WAV(char *,int)" (?DSound_Load_WAV@@YAHPADH@Z) 中被引用 1>t3dlib3.obj : error LNK2019: 无法解析的外部符号 __imp__mmioOpenA@12,该符号在函数 "int __cdecl DSound_Load_WAV(char *,int)" (?DSound_Load_WAV@@YAHPADH@Z) 中被引用
二、无法从“const char [6]”转换为“LPCWSTR” ..问题
点击右键属性-》链接器-》常规-》项目默认值-》字符集:改为使用多字节字符集即可
三、编译typedef void *POINTER_64 PVOID64错误
因为Directx也有basetsd.h,由头文件搜索顺序引起的
typedef void *PVOID;
typedef void * POINTER_64 PVOID64;
在它之前加下在:
#define POINTER_64 __ptr64 即可
本文介绍了在Visual Studio 2013环境下编译《3D游戏编程大师技巧》一书源码时遇到的问题及解决方法,包括设置附加包含目录、附加库目录、附加依赖项,以及解决字符集和typedef错误的步骤。

232

被折叠的 条评论
为什么被折叠?



