1

可能重复:
可能从 C# 调用 C++ 代码?

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

4

2 回答 2

2

COM 将是一个很好的方法(除了 COM 不支持静态方法的事实......)

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

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

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

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

于 2012-12-20T17:47:39.420 回答
1

你有两种方法:

使用C++\CLI或使用PInvoke包装本机 C++ dll

于 2012-12-20T17:45:04.627 回答