将char [] []和float [] []从C#发送到C ++

时间:2013-12-20 09:03:40

标签: c# marshalling

如何将从C#程序结构中的float [6] [6]发送到C ++,C ++也具有从c#中提取数据的相同结构 我有一个类似于上面的问题。我想从C#发送char [] []到C ++。我使用了字符串,在接收端我使用了char [] []但是C ++正在使用一些垃圾字符。我真的很感激回应。谢谢

3 个答案:

答案 0 :(得分:0)

如果您控制双方的代码,您可以传递float[36]这更容易,这将解决第一个问题。

关于传递char[],您应该记住,在C(++)字符串中\0 - 已终止,因此您应该在末尾手动添加\0(在C#中他们有一个Length属性。

关于通过char[][],我很抱歉,但我不知道P / Invoke知道怎么做。

答案 1 :(得分:0)

C ++是指托管C ++还是非托管C ++?在第二种情况下,您应该编写包装器。如果没有包装器,在C#和非管理C ++之间传递信息是不可能的。

答案 2 :(得分:0)

  1. 您确定您的C ++函数能够接收Unicode字符吗?如果不考虑发送byte而不是char
  2. 在C ++中,多维数组是对常规数组的抽象,例如char [4] [5]等于char [20]和编译器支持的索引。考虑将float [36]数组发送到C ++。