从C ++ / CLI包装器返回指向非托管类的指针,可以将其导入C#

时间:2012-03-04 13:55:36

标签: c++ dll c++-cli

我有一个C ++类,我需要在C#应用程序中创建几个实例。显然这意味着我需要制作一个C ++ / CLI包装器,因为你不能将C ++类导入C#,但我以前从未使用它。 C ++类继承自一个基类,它只包含几个纯虚函数,没有数据。 DLL只导出一个函数,该函数创建类的新实例并返回指向基类的指针。

可以使用哪种C ++ / CLI类型来调用该函数并获取指向C ++类的指针,但也可以将其导入C#?

感谢。

1 个答案:

答案 0 :(得分:1)

您不需要任何特殊的“C ++ / CLI类型”,您应该能够像普通的C ++一样调用该函数。但是如果你想使用C#中的C ++类,你真的需要编写C ++ / CLI托管包装类,你可以在C#中使用它。

托管包装器类将包含一个带有指向非托管类的指针的字段。它还将包含与非托管类相同的成员,这些成员将转发给非托管类。

有关如何执行此操作的示例,请参阅How to: Wrap Native Class for Use by C# on MSDN