一.下载并安装vs及DirectX
1.vs版本:vs2017community 免费的,百度就有
2.我下载的DirectX版本:DXSDK_Jun10
链接https://pan.baidu.com/s/1w7np5N-E6QYqJXIr0DKhOg
[安装过程中的问题] (更详细的过程可参考 https://blog.csdn.net/zhangkaihang/article/details/8652421)
安装SDK时,可能会在安装最后出现:
错误信息为:Error Code:S1023
出现 S1023 错误的原因是 VC++运行库不能成功安装,而 VC++运行库不能安装的原因是系统中已经安装了VC++运行库,并且版本等于或高于要安装的版本。
我们只需要把系统中已经安装的比SDK中VC++运行库版本高的卸载掉即可:
卸载程序:(只要下面的两个程序版本高于或者等于10.0.30319就将其卸载掉,要注意:不要错误的卸载掉2012或者 2008)
然后重新安装即可解决。
二.新建vs项目、配置DirectX
1.新建vs项目
(1)文件->新建->项目->Visual C++ -> Windows桌面 ->Windows桌面向导 填写名称位置 确定
(2)应用程序类型:控制台应用程序(.exe) 选空项目 确定
2.配置DirectX
(参考自 Mr_Lsz大大的 https://blog.csdn.net/lishuzhai/article/details/54135799)
(1)右键工程名->属性
(i)打开属性后,在“配置属性->VC++目录”下的“包含目录”添加你的DirectX安装目录\include
如:我的安装路径是:D:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Include
(ii)“库目录”添加的你的DirectX安装目录的\Lib\x86:
如:我的安装路径是:D:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Lib\x86
(要注意用“;”隔开前后目录,如果用上述 编辑 方式添加就不用了)
操作与上述类似就不加图了
(iii)“配置属性->链接器->输入”里的“附加依赖项”
将下列库文件粘贴到原有文件的后面:
d3d9.lib
d3dx10d.lib
d3dx9d.lib
dxerr.lib
dxguid.lib
winmm.lib
comctl32.lib
点确定即可完成配置
(2)检验一下是否配置完成:
在 DirectX 安装目录下的 Samples\C++\Direct3D\Tutorials\Tut04_Lights 目录下,打开 .sln 文件。
用 VS打开时,如果提示要进行升级,确认升级即可。(我的工程是升级后的,跟刚开始看到的工程有差别)
升级后运行,如果看到此图则证明配置正确:
3.属性表的配置
为什么要配置属性表呢?我们可以思考下,如果我们新建一个项目过后,就需要配置一遍DX和Effect环境(也就是重复上面的操作),岂不是很麻烦。
如果我们我们配置好一个属性表,每次新建一个项目过后,只需要导入这个属性表就行了。而不用进行上面很是啰嗦的操作。这样就很方便咯。
(1)新建项目并新建一个属性表
首先新建一个项目,打开这个项目的属性管理器(“视图->其他窗口->属性管理器”)d点击Debug|Win32右键新建一个属性表:(我们将其命名为DXProperty)
双击打开此属性表,会弹出一个界面。我们只需要按照上面的操作(DX的基本配置)在此处重新操作一遍即可(完全一样的配置操作)。
即可得到一个配置好的属性表。(切换为原来的视图:视图->解决方案资源管理器)
(2)导入属性表
那么往后你新建完一个新的项目后,只需要打开项目的属性管理器,点击Debug|Win32 文件夹,右键“添加现有属性表”。然后找到你配置好的属性表路径,直接导入
即可。不需要任何多余的操作
三.编写代码时遇到的问题
1.(使用MessageBox时)const.char 类型形参与LPWSTR 类型的实参不兼容
(参考地址 https://jingyan.baidu.com/article/7c6fb428629c3a80652c907e.html)
我们在用VS2012,VS2013编译自己或者网上的源代码时会提示如下错误“LPWSTR 类型的实参与const.char 类型形参不兼容”,如果我们在VC6.0上运行是不会提示这个错误的。主要原因是VC6默认使用字符ANSII编码方而VS2010、VS2012、Visual Studio 2013默认使用UNICODE编码方式。它们对一些字符所占内存空间的位数不同,为了向下兼容,可以在VS中通过修改一项设置来完成。(适用我的vs2017community)
(1)右击项目文件,选择属性
(2)选择“配置属性->常规”里的“字符集”,更改为“使用多字节字符集”
(3)单击确定即可,再次编译,此类错误就不会出现了
2.新建cpp编写DirectX程序后,生成解决方案时报错
错误 LNK2019 无法解析的外部符号 _main,该符号在函数 "int __cdecl invoke_main(void)" (?invoke_main@@YAHXZ) 中被引用
错误 LNK1120 1 个无法解析的外部命令
解决:
(1)右键项目->属性
(2)“配置属性->链接器->系统”里的“子系统”选择 窗口
(3)再次生成解决方案就没问题了
本文由VS软件圈(vssoft.net)发布,不代表VS软件圈立场,转载联系作者并注明出处:https://vssoft.net/vsazwt/VS2017anzhuangwenti/2020/0727/5797.html