2012-03-04 26 views
1

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

什么C++/CLI类型可用于调用该函数,并获得指向C++类,但也可以导入到C#?

谢谢。

回答

1

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

托管包装类将包含带有指向非托管类的指针的字段。它还将包含与非托管类相同的成员,并转发给它们的非托管等价物。

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

+0

嗨Svick。 所以包装类不需要导出任何东西?它可以被C#使用吗? 谢谢。 – 2012-03-04 15:00:42

+2

包装类将是一个.Net类,并没有在.Net中“导出”成员的概念。如果您将课程及其成员设置为“公共”,您将可以在C#中使用它们。 – svick 2012-03-04 15:08:13

相关问题