0
我有一个测试,我正在写MSTest,这是托管C++,我试图测试一个非托管类。具体来说,我试图使用PrivateObject类来调用私有方法。如何将用户定义的非托管类型转换为托管类型?
这是我到目前为止的代码:
CUnmanagedType foo;
PrivateObject privateFoo = gcnew PrivateObject(foo);
CString strFromFoo = privateFoo.Invoke("ARandomPrivateMethod");
当我编译我得到一个错误foo是不是可转换到System ::类型^。我已经尝试做以下事情:
PrivateObject privateFoo = gcnew PrivateObject((gcnew System::Type^(foo)));
但这不起作用,因为System :: Type ^是一种抽象类型。有任何想法吗?
我已经看了这些问题,但是他们使用预先定义的类型,而不是用户定义的: How to convert a unmanaged double to a managed string? Conversion between managed and unmanaged types in C++?