gpt4 book ai didi

c# - 从 C 调用 C# (.NET) API

转载 作者:行者123 更新时间:2023-11-30 22:47:27 24 4
gpt4 key购买 nike

要从 C# 调用 C API,我会使用 P/Invoke。但如果我反过来,从 C 调用 .NET API,我会怎么做呢?

最佳答案

如果您真的想通过 C API 完成这一切,并围绕 COM 和 C++ 进行最终运行,您可以执行以下操作。但首先弄清楚是否真的有必要!我怀疑在大多数情况下不会。

第 1 步。创建要调用的 C# .Net 程序集。

第 2 步。创建一个混合模式 CLI/C++ 程序集,其中导出了 extern "C"函数。让这个程序集调用 C$ 程序集。

第 3 步。创建您的 C 应用程序,从第 2 步创建的 DLL 中调用导出的 C 样式函数。

需要考虑的事情。A. 是否真的需要让 C(相对于 C++/COM)应用程序直接调用 .Net 程序集?
换句话说,如果您真的必须有一个混合的(.Net 和非 .Net)应用程序/系统,为什么不使用 C++ 和 COM 到 COM 导出的 .Net 方法?

B.您编写的 API 会是类的包装器吗?如果是这样,您将如何管理他们的生命周期? (例如,您会创建/使用句柄吗?您将如何管理它们与实际 gc 对象的关系……等等)

C.字符串。这些在 C 和 .Net 之间的处理方式非常不同。确保您熟悉它们的差异以及如何正确地跨越这些边界发送字符串...提示:CString 是您的 friend 。

关于c# - 从 C 调用 C# (.NET) API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2219711/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com