我有一个C ++类的C ++ / CLI包装器,我在C#应用程序中创建了几个实例,这很好用,除了C ++代码中的函数,它从调用函数中取一个缓冲区并填充它无论接收到对recv的调用,类似地,一些函数将数据包作为参数发送。
在C ++代码中有几个结构定义了所有数据包结构,指针作为参数,我有相同的C#结构,它们以相同的方式打包,以便它们在内存中看起来完全相同,我不知道我可以使用什么C ++ / CLI类型作为指向C#结构的函数的参数,并且可以传递给C ++代码。
感谢。
答案 0 :(得分:2)
您不需要任何特殊的“C ++ / CLI类型”,只需要C ++类型。如果它是一个简单的类C struct
(没有虚拟方法表或类似的东西),那么你可以尝试使用Marshal::StructureToPtr()
。如果不是那么简单,您可能需要按字段从C#对象字段中复制它。