2

在一个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);

提前致谢

4

0 回答 0