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

时间:2017-12-15 16:23:02

标签: visual-studio-2015 c++-cli

将大型项目从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 ++人都可以对此作出回应吗?我觉得这个问题可能在编译器设置中,但我不确定在哪里看。

1 个答案:

答案 0 :(得分:0)

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

#include stdafx.h
#include <array> 

到两个模块并将数组声明更改为cli :: array就可以了 - 没有编译错误,从VB Net调用C ++ dll返回的结果与之前的VS 2013版本相同。

再次感谢那些回复的人。