【问题标题】:Byte array from C++/CLI to C从 C++/CLI 到 C 的字节数组
【发布时间】:2013-02-12 03:22:48
【问题描述】:

我在 Visual c++ 中有一个类似这样的函数:

 DoSomething(IVector<unsigned char>^ inputBytes)

用于传递字节数组。在这个方法中,我需要访问一个接受字节数组参数(inputBytes)的 C 类方法。我在 C 类中放置了这样的方法

 void TestFunction(unsigned char* testdata[])

但是它会抛出一个错误。c中字节数组的语法是什么。如何将此字节数组从 c++ 传递给 c。谁能帮我找到解决办法。

【问题讨论】:

  • 这是 C++/CLI 问题,对吧?如果没有,请回滚我的编辑。
  • IVector 是一种 WinRT 类型,它使 C++/CX 成为可能的正确标签。请使用正确的标签,这对获得答案很重要。如果正确,您必须将向量复制到数组中,使用 GetMany() 方法。这怎么可能是一个 unsigned char*[] 还不清楚。

标签: c c++-cli visual-c++-2012


【解决方案1】:

您在 C 函数中声明了指向 char 的指针数组。我不知道 C++/CLI,所以完全不确定,但我认为正确的是其中之一:

void TestFunction(unsigned char* testdata)

或在许多情况下完全相等(仅细微差别):

void TestFunction(unsigned char testdata[])

First 是指向 char 或一些字符的指针,例如 C 风格的字符串。其次是一些字符的数组,在 C 语言中几乎与指向 char 的指针相同。

你很可能需要添加一个 int 参数,告诉字节数,因为 C 数组不知道自己的大小(它们基本上是美化的指针,正如我上面所说的),除非你可以通过其他方式知道大小(像 C 字符串在第一个 0 字节处结束)。

【讨论】:

    猜你喜欢
    • 2010-09-24
    • 1970-01-01
    • 2016-08-20
    • 1970-01-01
    • 1970-01-01
    • 2013-10-07
    • 2013-01-16
    • 2011-07-31
    相关资源
    最近更新 更多