1. 主页 > vs安装问题 > VS2017安装问题 >

vs2017community进行DirectX开发_问题小节

一.下载并安装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

联系我们

在线咨询:点击这里给我发消息

微信号:PREEE8

工作日:9:30-18:30,节假日休息