VS2015 c/c++代码问题 win8.1系统

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VS2015 c/c++代码问题 win8.1系统相关的知识,希望对你有一定的参考价值。

1> 源.cpp
1>c:\program files (x86)\microsoft visual studio 14.0\vc\include\xtr1common(100): error C2737: “std::is_same_v”: 必须初始化“constexpr”对象
1>c:\program files (x86)\microsoft visual studio 14.0\vc\include\xtr1common(100): error C2998: “const bool std::is_same_v”: 不能是模板定义
1>c:\program files (x86)\microsoft visual studio 14.0\vc\include\xtr1common(245): error C2737: “std::is_integral_v”: 必须初始化“constexpr”对象
1>c:\program files (x86)\microsoft visual studio 14.0\vc\include\xtr1common(245): error C2998: “const bool std::is_integral_v”: 不能是模板定义
1>c:\program files (x86)\microsoft visual studio 14.0\vc\include\xtr1common(282): error C2737: “std::is_floating_point_v”: 必须初始化“constexpr”对象
1>c:\program files (x86)\microsoft visual studio 14.0\vc\include\xtr1common(282): error C2998: “const bool std::is_floating_point_v”: 不能是模板定义
1>c:\program files (x86)\microsoft visual studio 14.0\vc\include\xtr1common(295): error C2737: “std::is_arithmetic_v”: 必须初始化“constexpr”对象
1>c:\program files (x86)\microsoft visual studio 14.0\vc\include\xtr1common(295): error C2998: “const bool std::is_arithmetic_v”: 不能是模板定义
1>c:\program files (x86)\microsoft visual studio 14.0\vc\include\xstddef(697): error C2737: “std::is_function_v”: 必须初始化“constexpr”对象
1>c:\program files (x86)\microsoft visual studio 14.0\vc\include\xstddef(697): error C2998: “const bool std::is_function_v”: 不能是模板定义
1>c:\program files (x86)\microsoft visual studio 14.0\vc\include\type_traits(524): error C2275: “_To”: 将此类型用作表达式非法
1> c:\program files (x86)\microsoft visual studio 14.0\vc\include\type_traits(521): note: 参见“_To”的声明
1> c:\program files (x86)\microsoft visual studio 14.0\vc\include\type_traits(526): note: 参见对正在编译的类 模板 实例化“std::is_assignable<_To,_From>”的引用
1>c:\program files (x86)\microsoft visual studio 14.0\vc\include\type_traits(524): error C2275: “_From”: 将此类型用作表达式非法
1> c:\program files (x86)\microsoft visual studio 14.0\vc\include\type_traits(522): note: 参见“_From”的声明
1>c:\program files (x86)\microsoft visual studio 14.0\vc\include\type_traits(524): error C3861: “__is_assignable”: 找不到标识符
1>c:\program files (x86)\microsoft visual studio 14.0\vc\include\type_traits(524): error C2975: “_Val”:“std::integral_constant”的模板参数无效,应为编译时常量表达式
1> c:\program files (x86)\microsoft visual studio 14.0\vc\include\xtr1common(21): note: 参见“_Val”的声明

我的电脑更换主板安装win8.1后也遇到VC2015x64安装出错的问题,导致一些驱动不能成功安装,而查询后发现要首先安装补丁Windows8.1-KB2999226-x64和Windows8.1-KB2919442-x64,但这两个补丁一直安装不成功,折腾了两天,终于搞定了:
1、管理员模式启动cmd,输入:wusa.exe /uninstall /kb:2999226,回车卸载;
输入:dism/online /cleanup-image /startcomponentcleanup,回车执行完成。
2、打开运行,输入“Services.msc”命令打开服务窗口,找到WindowsUpdate服务,将其停止;
然后进入“C:\Windows\SoftwareDistribution\DataStore”文件夹,将里面的文件全部删除;进入“C:\Windows\SoftwareDistribution\”,将其中的“Download”里的文件删除干净。
3、重启电脑,关闭防火墙和电脑上的安全防护类软件。
4、点击安装补丁Windows8.1-KB2999226-x64和Windows8.1-KB2919442-x64,补丁最后到微软官网上下载;
之后就可以顺利安装或修复VC2015x64了。
参考技术A 源程序发出来啊。追问

#include
using namespace std;
int main()

return 0;

追答

不要 新建项目。

在VS2013下编译的C ++代码无法在VS2015下编译

将大型项目从VS2013(Win7)移动到VS2015(Win10)。 95%的项目是VB .NET,我会很流利,并且转换没有问题。

不幸的是,有两个小的C ++模块,当我尝试编译时会返回大量错误,这些错误似乎是语法上的:

'std::array': too few template arguments<br>
'^':cannot use this indirection on type 'std:array'<br>
left of '->Length' must point to class/struct/union/generic type    

编写原始代码的C ++程序员声称C ++已经从VS2013发展到VS2015。我不是C ++人,所以我无法真正回应。他非常忙,并且对更新C ++部分不太感兴趣,建议我们使用VS2013 w / Win10,但我宁愿使用至少2015年,如果不是2017年更长寿命。

任何C ++人都可以对此作出回应吗?我觉得这个问题可能在编译器设置中,但我不确定在哪里看。

答案

如上所述,我不是一名C ++程序员,但是一个小小的谷歌搜索让我摆平了。托管和标准阵列中存在不兼容性。添加

#include stdafx.h
#include <array> 

到两个模块并将数组声明更改为cli :: array做了诀窍 - 没有编译器错误并且从VB Net调用C ++ dll返回与早期VS 2013版本相同的结果。

再次感谢那些回复的人。

以上是关于VS2015 c/c++代码问题 win8.1系统的主要内容,如果未能解决你的问题,请参考以下文章

win8.1中vs2015配置opengl环境,那个glut.lib和glut32.lib放哪里啊

Win8 系统下 用VS2012 + WDK8.0 编译驱动程序filedisk-17 错误[之前是好的/系统重装后就编译不通过]

如何用VS2015建立C/C++程序

vs哪个版本适合win7 win7各个版本的区别

vs2013如何快速批量注释,就是全部加上//的

vs2013如何快速批量注释,就是全部加上//的