gpt4 book ai didi

c# - 返回 C# 后在 C++ 中保留类状态

转载 作者:搜寻专家 更新时间:2023-10-31 01:56:09 24 4
gpt4 key购买 nike

我有一个 C++ 作为后端和 C# 作为前端,我使用 pinvoke 互操作机制在 native 代码和托管代码之间进行通信。

现在的问题是,实际上 C++ 后端完成了两部分计算,即初始化部分和即时计算部分。初始化只需要进行一次,但需要很长时间才能完成,而动态计算部分需要很短的时间才能完成,但需要一遍又一遍地完成。

C++代码保持原样,不能改写成C#代码。

我可以随意修改 C++ 和 C# 代码。

我知道如何进行静态互操作,但我不知道如何进行这种全状态互操作。有什么想法吗?

最佳答案

您可以在 C++/CLI 中围绕您的 C++ 类编写一个包装器,从而提供真正的 CLR 类型。然后,您可以在 C# 中无缝管理它们的生命周期。

  • 网上有很多关于它的信息:here或者 here (只需谷歌“C++/CLI 包装器”)。
  • 当然,在 stackoverflow 上:here .

除非有一些漂亮的工具,否则您将不得不自己编写这个包装器。

或者,您可以围绕您的 C++ 类编写一个包装函数(或一组包装函数),可能只将所需的最少功能公开为“C”函数。然后,您将从 init 函数中传递出一个“HANDLE”(Int32、IntPtr 等),并要求它作为计算函数的输入。您必须在包装函数中内部管理它们(您可能还想提供清理函数)。

关于c# - 返回 C# 后在 C++ 中保留类状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7567556/

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