如何在c#中使用C ++ dll导出的类

时间:2012-12-20 17:30:18

标签: c# c++ dll export

  

可能重复:
  Possible to call C++ code from C#?

我有C ++类,有一些静态方法。它是在dll中,即出口类。我需要使用C#项目中的静态方法。我可以在没有COM的情况下完成吗?

2 个答案:

答案 0 :(得分:2)

COM是一种很好的方法(除了COM不支持静态方法之外......)

另一种方法是将类转换为C ++ / CLI托管类,如下所示:

public ref class MyClass
{
public:
    static void StaticMethod()
    {
        ...
    }
};

C#中的C ++ / CLI托管类对C#是可见的,就像它是C#类一样。

如果您不想将C ++项目转换为C ++ / CLI项目,则可以创建一个包含托管类的C ++ / CLI项目,该托管类将非托管类包装在非托管C ++项目中。

答案 1 :(得分:1)

你有两种方式:

使用C++\CLI或使用PInvoke

包装本机C ++ dll