如何使用C程序中的现有C#代码

4 .net c c# dll interop

有没有办法可以开发一个示例C#程序,并使其成为DLL,并在我的C程序中使用它?

比方说,C#DLL有一个add(int a, int b)返回或打印结果的函数.我想在我的C程序中使用它.任何示例链接都应该是一个很好的帮助.

Cod*_*ray 6

最简单的方法是将C#DLL公开为COM对象,然后从C/C++应用程序创建它的实例.有关分步指南,请参阅MSDN.

或者,如果它实际上是您希望能够从中调用C#DLL的C++应用程序,则可以创建混合模式 C++/CLI应用程序,该应用程序包含托管代码和非托管代码.然后,C++应用程序可以直接从托管C#DLL调用函数.

另请参阅MSDN上的"托管/非托管代码互操作性概述".


编辑:没有任何更多的信息,而不是"它在C中不起作用",我甚至不知道你尝试过哪些上述建议.正如我所说的那样,我不确定第二种是否能用直C(从未尝试过),但我认为没有理由为什么第一种不会.

无论如何,快速而肮脏的修复可能是将C#函数包装在C++ DLL中,然后从C应用程序调用它.确保您声明要从C++ DLL导出的任何函数extern,否则它们的名称将被破坏C++名称,这在C中是不可能使用的.有关更多信息,请参见此处:http:// www. parashift.com/c++-faq-lite/mixing-c-and-cpp.html