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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在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版本相同的结果。

再次感谢那些回复的人。

以上是关于在VS2013下编译的C ++代码无法在VS2015下编译的主要内容,如果未能解决你的问题,请参考以下文章

VS2013运行时总是报错:无法打开文件cv200.lib,该怎么处理

如果 .cshtml 文件中存在 razor/C# 错误,如何在 VS 2013 中使构建失败? [复制]

为啥我无法在 win64 上使用 boost 1.54 编译 VS2012 C++ 代码?

vs 中c代码无法断点

无法在 VS2017 上转换 T4 模板

在 VS2012 上禁用 C++11 功能