2010-06-18 116 views

回答

2

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

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

+0

在C++接口中有这样一句话:“这个[unsigned char **]是指向数组字符的指针数组,每个字符都是标准的XSB字符之一。这个变量应该用于存储推箱子游戏中物体的位置。谢谢! – 2010-06-18 08:19:11

+0

在这种情况下string []应该适合。 – codymanix 2010-06-18 11:48:30

+0

它的工作原理。谢谢! – 2010-06-18 22:04:49

0

这可以编为ref string。请务必使用具有[MarshalAs]属性的正确字符集。

1

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

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

这绝对会让你更容易和更安全。

如果您决定更改传输的数据类型(即使用整数,结构等代替原始字符串),则使用序列化库是一种可行的方法。

+0

谢谢你的链接!但是这是我需要的最后一种数据类型,所以我会很高兴只是编组它,并继续其他工作:) – 2010-06-18 08:23:12

+0

当你有一些空闲时间,我真的建议你看看它。这似乎是您的项目的完美用例,因为您正在交换不同的消息类型。通过协议缓冲区,更改消息结构或界面非常简单。这里有一个教程,让你开始使用C#:http://snipplr.com/view/24475/google-protocol-buffers-usage-in-c-using-jon-skeets-protobufcsharpport/。您甚至可以在Visual Studio IDE中使用它:http://code.google.com/p/protobuf-net/。 – 2010-06-18 08:51:59

相关问题