gpt4 book ai didi

c# - 将 recv() 和 send() 的缓冲区从 C# 传递到 C++

转载 作者:行者123 更新时间:2023-11-28 03:39:59 26 4
gpt4 key购买 nike

我有一个 C++ 类的 C++/CLI 包装器,我在 C# 应用程序中创建了它的多个实例,这工作正常,除了 C++ 代码中的函数从调用函数获取缓冲区并填充它无论收到什么,都会调用 recv,类似地,一些函数将要发送的数据包作为参数。

在 C++ 代码中有几个定义所有数据包结构的结构,指向它们的指针被用作参数,我有等效的 C# 结构,它们以相同的方式打包,因此它们在内存中看起来完全相同,什么我不知道我可以将哪种 C++/CLI 类型用作函数的参数,这些函数采用指向 C# 结构的指针,并且可以传递给 C++ 代码。

谢谢。

最佳答案

您不需要任何特殊的“C++/CLI 类型”,您只需要 C++ 类型。如果它是一个类似 C 的简单 struct(没有虚拟方法表或类似的东西),那么您可以尝试使用 Marshal::StructureToPtr() .如果不是那么简单,您可能需要逐个字段地从 C# 对象中复制它。

关于c# - 将 recv() 和 send() 的缓冲区从 C# 传递到 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9574867/

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