gpt4 book ai didi

c# - 将 C# 引用传递给 C++ 指针并返回

转载 作者:行者123 更新时间:2023-11-30 12:48:29 26 4
gpt4 key购买 nike

我想将 C# 引用传递给 C/C++ 代码(指针),而不是从指向 C# 引用的指针取回它。我有很多对(uint,Object)。我在 C 代码中创建了排序机制,因为它比 C# 快得多。只需要 key(uint) 和 value(object reference)。 C 代码使用键进行排序,并没有改变值(指针)。有什么简单的方法吗?我需要使用编码吗? C 函数将被调用很多次(甚至可能是一百万次),所以我担心编码太慢了,我什至不知道如何编码。我相信当 GC 更改对象地址时,C# 引用的地址不会更改。因此不需要将对象放置在固定内存中。我说得对吗?现在我可以使用 DllImport 调用 C 函数,我可以将 C# 引用存储到 C 指针,但我无法获取存储在 C 指针中的地址到 C# 引用。

关于如何做到这一点有什么想法吗?

最佳答案

无法将任何变量直接从托管 C# 代码传递到 native C++ 代码。解决方案是 pinvoke,您可以在其中编码数据。

这很好用,但您应该知道这并不是每次都可以解决禁食问题。在每次调用时,必须复制内存,并可能根据数据类型进行转换。

关于c# - 将 C# 引用传递给 C++ 指针并返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13978300/

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