【发布时间】:2020-10-11 15:38:22
【问题描述】:
我的函数看起来像这样:
void Example(const unsigned char* bytes)
{
unsigned char buffer[2048] = {0};
strcpy(buffer, bytes);
}
这不起作用。我该如何完成这项工作?
【问题讨论】:
-
给定名称
bytes,您应该有一个长度参数。 0 是一个有效字节。 -
“这不起作用。” 这怎么不起作用?你得到一个编译器错误吗?
-
强制转换永远不会改变任何东西,它只是让编译器以不同的眼光看待事物。它可能会改变查看的方式,但不会改变事物。
-
@ThomasSablik 它说““unsigned char *”类型的参数与“char *”类型的参数不兼容
-
@chris 我不太确定该怎么做,因为这个函数基本上会被 C# 从外部调用,并传递一个字节数组作为参数。我不确定如何将它转换为 C++,但我读到它必须是一个无符号字符数组。另外,我只是将长度设置为 2048,因为这样就足够了,但我觉得我在这里犯了某种错误。我通常不会用 C++ 编写代码。
标签: c++ c visual-c++ interop