将C ++解决方案转换为类库

时间:2011-02-11 10:31:00

标签: c# c++ class

这可能是一个简单的问题,但由于我没有C ++经验,而且我的老板给了我一个C ++解决方案,我需要问这个问题。

我有一个C ++解决方案需要转换为.NET类库,然后可以在另一个用C#完成的.NET解决方案中使用。

这是否可能?

干杯

2 个答案:

答案 0 :(得分:3)

您必须在C ++ / CLI类中包装应在.NET中可见的所有C ++类。

Read this

还有一些自动化工具可以做到这一点,但我从未使用过这些(我真的不相信它们)。取决于你拥有多少个C ++类,以及它们有多复杂。一旦习惯了C ++ / CLI的一些奇怪之处,编写包装器就会非常简单。

答案 1 :(得分:1)

这取决于C ++解决方案的输出。它是应用程序(* .exe)还是库(* .dll)?

如果它是库(* .dll),您可以使用Platform Invoke Tutorial从托管代码中调用其功能。可以在http://pinvoke.net/找到许多调用Win32本机函数的示例。

如果您的结果是应用程序,那么它可能具有COM接口。在这种情况下,您可以使用COM interop与您的应用程序进行通信。

最后但并非最不重要的是,您可以使用C ++ / CLI编写围绕C ++功能的托管包装器。但这是一项很多工作,并且有很多陷阱。