从C#在.lib文件中创建C ++类的实例

时间:2011-04-12 22:22:10

标签: c# .net c++

如描述所述。我有一些静态.lib文件在其他相当大的c ++项目中创建,其中包含我希望能够在C#中使用的类。从c#中使用这些类的最佳方法是什么?不管理C ++库。

3 个答案:

答案 0 :(得分:3)

到目前为止,最简单的选择是在C ++ / CLI中构建一个包装器库。

答案 1 :(得分:1)

我担心在C#中无法从本机.lib文件导出类。 但是使用C ++ Cli,你可以包装类并通过包装器.net类来使用它。但是这种方法还需要包含头文件(.h或.hpp)。

COM dll是不同的故事。它们可以在C#项目中引用,MSVS会自动包装本机类。

答案 2 :(得分:1)

@ marcelo-cantos所说的:使用C ++ / CLI作为托管和非托管世界之间的桥梁。这很容易。

您拥有的唯一选择是:

(1)编写一个包装器DLL,它导出调用现有C ++对象的extern“C”函数。然后在C#中使用[DllImport]PInvoke来调用DLL的C函数。

(2)将您的本机C ++类包装在COM接口中,并使用C#COM Interop调用类上的方法。

C ++ / CLI桥是目前最简单的选择。