如何从C#调用C ++ / CLI?

我有一个用C ++实现的类,它负责程序的算术计算,以及一个使用WPF的接口。我使用C#处理输入,但是如何使用C ++类呢?

我已经看到了一些有关使托管C ++包装器类与之交互的评论,但我不知道从哪里开始。我也不知道该如何与其他所有代码一起进行编译。我真的找不到关于此的教程,谷歌在托管C ++上显示的内容似乎并没有帮助。

有什么可以帮助我的吗?在我看来,这似乎并不合理。

编辑尝试了m3rLinEz解决方案,但它给了我BadImageFormatException,我认为这是因为未生成DLL。我做了一切,不知道发生了什么。有任何想法吗?


梦里花落0921
浏览 645回答 3
3回答

一只甜甜圈

在同一过程中,至少有三种方法可以从托管代码中调用非托管代码:C ++ / CLI平台调用将C ++包装在COM对象中在工作中,我们为此使用C ++ / CLI,它似乎可以工作。

ITMISS

我将按照此处所述创建标准(非COM / Managed)动态链接库,然后在c#代码中使用DllImport属性(平台调用)来访问导出的函数。那篇文章的重点是:请注意此代码的方法声明中的__declspec(dllexport)修饰符。这些修饰符使方法可以由DLL导出,以便其他应用程序可以使用它。有关更多信息,请参见dllexport,dllimport。与实际的COM互操作包装器相比,这是一种较轻的替代方案,并且避免了诸如注册等问题(DLL可以简单地放置在应用程序目录中)。另一种替代方法是It Just Works(IJW)。如果您已经管理过C ++代码并且需要从其他.NET语言访问此代码,那么这可能是一个更好的选择。但是,如果您能够/很乐意将非托管C ++转换为托管C ++,则这只是一个选择。
打开App,查看更多内容
随时随地看视频慕课网APP