【发布时间】:2010-06-18 08:02:30
【问题描述】:
我正在尝试编组 unsigned char**(在 C++ 接口中)以便从 C# 调用该方法。
如何做到这一点?是否有 C++ 数据类型和 C# 数据类型的列表?
谢谢!
【问题讨论】:
标签: c# c++ marshalling
我正在尝试编组 unsigned char**(在 C++ 接口中)以便从 C# 调用该方法。
如何做到这一点?是否有 C++ 数据类型和 C# 数据类型的列表?
谢谢!
【问题讨论】:
标签: c# c++ marshalling
这个unsigned char** 的语义是什么?如果是字节数组,则使用ref byte[]。
如果它是一个以零结尾的字符串,请使用ref string。
你可以在页面http://www.pinvoke.net找到一些流行的方法签名映射到c#,这可能会给你一些想法。
【讨论】:
我认为您应该使用具有C++ 和C# 接口的序列化库。
来自 Google 的 Protocol Buffers 或来自 Facebook 的 Thrift 都支持这两种语言。
它肯定会让您的事情变得更轻松、更安全。
如果您决定更改传输的数据类型(即使用整数、结构等而不是原始字符串),则可以使用序列化库。
【讨论】:
这可以编组为ref string。请务必使用具有[MarshalAs] 属性的正确字符集。
【讨论】: