如何在c#中使用C++ dll导出类[重复]
Posted
技术标签:
【中文标题】如何在c#中使用C++ dll导出类[重复]【英文标题】:How to use C++ dll exported class in c# [duplicate] 【发布时间】:2012-12-20 17:30:18 【问题描述】:可能重复:Possible to call C++ code from C#?
我有 C++ 类,它有一些静态方法。它在 dll 中,即导出类。我需要使用 C# 项目中的静态方法。没有 COM 可以吗?
【问题讨论】:
【参考方案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 例子以上是关于如何在c#中使用C++ dll导出类[重复]的主要内容,如果未能解决你的问题,请参考以下文章