我们有一个用于 CLR 的 VC++ 项目,该项目在 VS 2012 中正确编译。但在运行时出现以下异常:
“无法从程序集 'mscorlib,版本 = 4.0.0.0,文化 = 中性,PublicKeyToken = b77a5c561934e089' 加载类型 'System.Int32[]&'”
以下是代码:
// ClassLibrary1.h
#pragma once
using namespace System;
using namespace System::Runtime::InteropServices;
namespace ClassLibrary1 {
//template <typename T>
class ArgOutValueArray
{
public:
ArgOutValueArray(int (__gc* __nogc& aRef) __gc[] )
{
//(*x)[0] = 100;
}
};
public __gc class Class1
{
public:
static void f1([Out] int (*x) __gc[])
{
f2(x);
}
static void f2([Out] int (*x) __gc[])
{
ArgOutValueArray arg_xeqp(x); // Getting the exception at this line.
}
};
}