在c ++中使用c#代码的可能方法是什么?

时间:2010-11-25 13:17:28

标签: c# c++ interop

我正在寻找一种在我的c ++项目中重用c#编写的代码的最佳方法。创建一个com \ service看起来不是满足我需求的最佳选择。将c#代码导出到dll并在c ++中使用它有多难?我可以得到一些建议或例子吗?这是通常的要求还是?请帮我。 我使用win7,VS2008,win7sdk

谢谢& Rgds,~calvin

4 个答案:

答案 0 :(得分:2)

从未损坏的可执行文件执行托管代码是可能的,尽管不是很容易。您可以查看this article了解相关信息,this book进一步了解。

在大多数情况下,我个人会避免这种情况,如果可能的话,将C ++项目切换到C ++ / CLI,以便以最低的成本立即兼容.Net程序集。

答案 1 :(得分:0)

您无法将C#代码导出到本机dll afaik。至少你的臀部没有太大的疼痛。您应该事先考虑并在C中编写可重用的部分,从而创建一个可以在所有语言中使用的本机DLL。

另外,您可以尝试托管C ++ - 我个人讨厌它......但是你去了

答案 2 :(得分:0)

如果您需要使用C#C ++编写的代码,那么您需要先了解从C ++代码到C#代码的所有数据类型。 1. int,enum等基本数据类型可以从非托管代码传递到托管代码。 2.如果你想传递类对象,那么你需要使用编组。

答案 3 :(得分:0)

如果您不能使用COM(例如,如果已经编写了.NET代码),那么您可以托管CLR,但这是一条漫长的道路......

请参阅其他文章 How to load CLR into processCreate a C# DLL That Can Be Imported in a Delphi App Using stdcall - Possible?