Visual Studio 2015编译错误:语言

时间:2015-08-17 13:05:55

标签: c# .net c++-cli visual-studio-2015 unmanaged

迁移到VS2015,我遇到了编译问题。 项目没有变化'目标框架,它们仍然是.net 4.5

编译器似乎无法识别参数类型

void BootstrapOIS(List<long>^ %resultDates, List<double>^ %resultRates,
    const long tradingDate, /*const*/ List<int>^ periodNumbers,
    /*const*/ List<String^>^ periods, /*const*/ List<double>^ swapsRates,
    /*const*/ List<long>^ hol);
  

错误CS0570&#39; BootstrapWrapper.BootstrapOIS(参考?,?,?,?,?,?,?)&#39;   语言不支持

     

引用的程序集:

     
      
  • Bootstrap,Version = 1.0.4918.15400,Culture = neutral,PublicKeyToken = b007f9158e880332
  •   
  • 全球类型:
  •   
  • 架构:x64
  •   
  • 此程序集包含非托管代码。
  •   
  • 运行时:.NET 4.0
  •   

VS2013编译顺利。

2 个答案:

答案 0 :(得分:0)

看起来您在声明中混合了标准和CLR类型。生成的代码(来自ILSpy)是相同的,但是当它从C#中使用时它会窒息。

在签名中仅使用CLR类型似乎有效:

void BootstrapOIS(List<Int64>^ %resultDates, List<System::Double>^ %resultRates,
    const Int64 tradingDate, List<Int32>^ periodNumbers, List<String^>^ periods,
    List<Double>^ swapsRates, List<Int64>^ hol);

答案 1 :(得分:0)

我遇到了类似的问题 - 据说微软有一个公开的错误。

尝试删除&#34; const&#34;声明,并将tradingDate更改为Int64变量。如果这解决了,那么,恭喜你,你有一个成功的解决方法。