【问题标题】:How to use C++ dll exported class in c# [duplicate]如何在c#中使用C++ dll导出类[重复]
【发布时间】:2012-12-20 17:30:18
【问题描述】:

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

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

【问题讨论】:

    标签: c# c++ dll export


    【解决方案1】:

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

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

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

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

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

    【讨论】:

      【解决方案2】:

      你有两种方法:

      C++\CLI 封装原生C++ dll 或使用PInvoke

      【讨论】:

      • 在 PInvoke 中所有的例子都是关于简单函数的,有没有办法将它与类方法一起使用?
      • @hellohi 你必须声明一个句柄看看 gdi32.dll 例子
      猜你喜欢
      • 2015-12-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多