如何在C#中编组数据类型unsigned char **?

时间:2010-06-18 08:02:31

标签: c# c++ marshalling

我正在尝试编组unsigned char **(在C ++接口中)以便从C#调用该方法。

如何做到这一点?是否有C ++数据类型和C#数据类型的列表?

谢谢!

3 个答案:

答案 0 :(得分:2)

这个unsigned char**的语义是什么?如果是字节数组,请使用ref byte[]。 如果它是一个以零结尾的字符串,请使用ref string

您可以在页面http://www.pinvoke.net上找到映射到c#的一些常用方法签名,这可能会为您提供这个想法。

答案 1 :(得分:1)

我认为您应该使用具有C++C#接口的序列化库。

来自Google的Protocol Buffers或来自Facebook的Thrift都支持这两种语言。

这肯定会让事情变得更轻松,更安全。

如果您决定更改传输的数据类型(即使用整数,结构等而不是原始字符串),则可以使用序列化库。

答案 2 :(得分:0)

这将被编组为ref string。请务必使用带有[MarshalAs]属性的正确字符集。