欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 幼教 > 如何在C#中直接使用dll中的C++类

如何在C#中直接使用dll中的C++类

2025/3/22 4:15:36 来源:https://blog.csdn.net/manyoudian/article/details/141750027  浏览:    关键词:如何在C#中直接使用dll中的C++类

如何在C#中直接使用dll中的C++类

C#和C++是两种编程语言,直接在C#中使用C++类是很困难的,但万能的微软提供了C++/CLI这一工具作为胶水,把两者粘连起来的。
首先写一个简单的dll,名字就叫做Cpp吧,里面导出一个C++类。

// Simple.h
struct MyData
{int a = 0;int b = 0;
}
class CPP_EXPORT Simple
{
public:int add(MyData d){return d.a + d.b;}
}

然后再新建一个CLR工程,名字就叫做CppClr吧,用C++\CLI语言对Cpp dll做一个包装(制作胶水),记得添加对Cpp dll的引用。

#include <Simple.h>
namespace CppClr {public value struct MyDataCli{int a;int b;MyData toCpp(){MyData d;d.a = a;d.b = b;return d;}}public ref class SimpleCli{public:SimpleCli() : instance(new Simple()) {}~SimpleCli(){delete instance;}int add(MyDataCli d){return instance->add(d.toCpp());}private:Simple* instance = nullptr;}
}

好了,胶水制作好了,可以在C# 工程里试一下,建立一个控制台项目吧,名字就叫做App好了。

namespace App
{class Program{static void Main(string[] args){Cppclr.SimpleCli s = new Cppclr.SimpleCli();Cppclr.DataCli data;data.a = 2;data.b = 10;Trace.WriteLine(s.add(data));}}
}

完美!
C++\CLI这胶水还是比较好用的,相当于给dll 里的C++类重新写了一个头文件,让C# 能够认识。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词