解决《Windows游戏编程大师技巧》VS2010编译第一个程序的环境问题

1. 创建Project:

首先要注意的是创建“Win32 Project”而不是“Win32 Console Application”,不然会出现以下错误:

error LNK2019: unresolved external symbol _main referenced in function ___tmainCRTStartup
fatal error LNK1120: 1 unresolved externals


这里把"Create directory for solution"打上勾。


把"Empty project"打上勾。再点Finish。

2.设置项目属性:
    创建完项目,右键属性:


在Configuration Properties - General 里把 "Character Set" 改成 Not Set.


再接着在 VC++Directories 里把"Include Directories" 里点击"New Line",然后把安装的DX8.0目录下include文件夹路径添加进去。这里唯一要注意的是要把我自己添加的路径放到最下,就像上图中的,而其他Inherited values里的重新复制粘贴一下就行了。

$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\include;D:\DXF\DXSDK\include;$(IncludePath)


修改"Library Directories"也是一样的。把安装的DX8.0目录下lib文件地址添加进去,在把其他的Inherited values一条一条地复制-新建-粘贴进去,在把顺序调整下,把我们添加的DX8.0路径保持在最底下。

$(VCInstallDir)lib;$(VCInstallDir)atlmfc\lib;$(WindowsSdkDir)lib;$(FrameworkSDKDir)\lib;D:\DXF\DXSDK\lib;$(LibraryPath)


检查下C/C++ - General 里的”Additional Include Directories" 要保持空的就行。

3. 把五个lib复制粘贴到项目文件夹中:




这里我是在VS2010中Add - New Item,然后分别新建两个.cpp和一个.hd文件,然后把代码分别复制进去。

其它的lib文件直接复制-粘贴进去就行了,如上图。

4. 附加依赖项:
然后再回到项目属性设置里设置

在Linker - Input 里编辑"Additional Dependencies"在窗口中加入 :

ddraw.lib
dsound.lib
dinput.lib
dinput8.lib
winmm.lib

5. Build 编译一下:

编译成功了,我直接无视了几个warning... 反正这个打砖游戏能正常运行玩起来。

----更新: 2019/6/13----

1. 可能会遇到Configuration Properties里没有C/C++的情况,这时候随便添加一个自己的C/C++文件就会出现了。
2. #include <iostream.h> 改为 #include <iostream>。

----更新: 2021/1/9----

1. 重新搭建环境的时候疏忽了是“Win32 Project”,在第一步创建Project里强调了这个问题,并记录了错误提示。

---------------

----更新: 2021/8/14----

1. 在2.设置项目属性中添加了两行D:\DXF\DXSDK\include;和D:\DXF\DXSDK\lib;

---------------

Reference:

  1. 3D游戏编程大师技巧──环境搭建
  2. Missing ';' identifier before PVOID64
  3. 解决:../../../winnt.h(222) : error C2146: syntax error : missing ';' before identifier 'PVOID64'的问题
  4. 解决VS 编译 typedef void * POINTER_64 PVOID64错误
  5. VS2010编译的时候碰到winnt.h问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值