MFC class to C#



我在C++/MFC中实现了一个名为GDAL的库,这个项目也实现了gdiplus用于绘制位图。

简而言之:我将所有内容封装在一个类中,该类接受一些 int、string 和其他非常常见的类型,并返回其中一些类型以及一些 gdiplus::Bitmap。所有这些都很好地打包在一个.dll和.lib中。

所以现在我想在 C# 项目中使用此库来使用窗体的所有功能。

我在整个互联网上搜索了答案,但找不到任何非常具体的教程和其他有用的文档。

但是有一个解决方案引起了我的注意,但没有得到很好的描述,它是c ++/clr包装器。我创建了一个 C# 最终接受作为引用的,但它不允许我实例化该类,也不允许我查看命名空间或任何与智能相关的内容。

如果有人能帮助我走这条路,或者给我一个类似的好人,将不胜感激。

不能

在 C# 项目中使用 C++ 类。

您有两种选择。

第一种方法是在VC++中创建一个托管包装器,这将创建一个托管类,该类访问非托管类并聚合调用类上的各种属性/方法。

有关如何执行此操作,请参阅本文

获得包装器后,只需设置引用,然后使用来自 C# 的类。

第二种方法是将 MFC 对象包装在 COM 对象中。你必须定义你的接口,然后创建类工厂,然后实例化对象......它更"面向对象",但工作量很大,请参阅教程

最新更新