在一个C#
项目中,我们正在调用基于 CLR 的VC++
方法。我们将一个浮点值数组作为输出参数传递。
我们收到以下错误:
无法从程序集“mscorlib,
版本=4.0.0.0,文化=中性,PublicKeyToken=b77a5c561934e089”加载类型“System.Single[]&”。
早些时候,C# 和 VC++ 项目都在 2010 年并且运行良好。我们已经将它们都迁移到了 VS 2012,从那时起我们就面临这个问题。
可能是什么原因?
C#代码:
float[] x = new float[401 * 3];
float[] y = new float[401 * 3];
Wrapper1.Compute(out x, out y);
VC++ CLR 代码:
static void Compute([Out] float (*x) __gc[],
[Out] float (*y) __gc[])
{
ArgOutValueArray<float> arg_x(x, 401*3);
}
控件在VC++中进入Computer方法,但在声明变量时出现上述异常:
ArgOutValueArray<float> arg_x(x, 401*3);
提前致谢