我正在寻找一种在我的c ++项目中重用c#编写的代码的最佳方法。创建一个com \ service看起来不是满足我需求的最佳选择。将c#代码导出到dll并在c ++中使用它有多难?我可以得到一些建议或例子吗?这是通常的要求还是?请帮我。 我使用win7,VS2008,win7sdk
谢谢& Rgds,~calvin
答案 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 process和Create a C# DLL That Can Be Imported in a Delphi App Using stdcall - Possible?