有没有一种方法可以开发示例 C# 程序,将其制作成 DLL,然后在我的 C 程序中使用它?
比如说,C# DLL 有一个函数 add(int a, int b)
返回或打印结果。我想在我的 C 程序中使用它。任何示例链接都应该是一个很好的帮助。
最佳答案
最简单的方法是将 C# DLL 公开为 COM 对象,然后从您的 C/C++ 应用程序创建它的实例。参见 MSDN获取分步指南。
或者,如果它实际上是一个您希望能够从中调用 C# DLL 的 C++ 应用程序,您可以创建一个混合模式 C++/CLI 应用程序,其中包含托管和非托管代码.然后,C++ 应用程序可以直接从托管的 C# DLL 调用函数。
另见 "An Overview of Managed/Unmanaged Code Interoperability"在 MSDN 上。
编辑: 除了“它在 C 中不起作用”之外,没有任何更多信息,我什至不知道您尝试了上述哪些建议。正如我所建议的,我不确定第二个是否可以直接使用 C(从未尝试过),但我看不出第一个为什么不能。
无论如何,快速而肮脏的解决方法可能是将 C# 函数包装在 C++ DLL 中,然后您可以从 C 应用程序中调用它。确保将要从 C++ DLL 导出的任何函数声明为 extern
,否则它们的名称将被损坏的 C++ 名称,这在 C 中是不可能使用的。有关更多信息,请参见此处信息:http://www.parashift.com/c++-faq-lite/mixing-c-and-cpp.html
关于c# - 如何使用 C 程序中的现有 C# 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4313584/