![](/img/trans.png)
[英]passing 2D array from C# to unmanaged C++ using C++/CLI wrapper
[英]Passing an array argument from C# to a C++/CLI method
我对C ++ / CLI知之甚少,但我有一个需要解决方案的简单问题。 我有一个C ++ / CLI类方法,它接受一个字节数组作为参数。 该数组具有预定长度,可以事先在C#中分配。 该阵列应该由C ++ / CLI方法填充数据。
如何声明方法然后从C#调用它?
我尝试过在C ++ / CLI类中使用以下内容:
public ref class C
{
public:
void FillBytes(array<BYTE^>^ bytes);
};
然后,在C#中:
o = new C();
var bytes = new byte[3];
o.FillBytes(bytes);
但那根本不起作用:)。
您是否尝试过使用byte
而不是BOOL
引用?
void FillBytes(array<System::Byte>^ bytes);
↑
// no ^ here
我知道很久以前就问过这个问题了,但希望能帮助正在查看这篇文章的其他人。 从C ++ / CLI您需要发送:
void FillBytes(array<unsigned char>^% bytes);
“hat”表示它是CLR类型,%表示您将通过引用传递它,以便C ++ / CLI填充数组。
然后你可以像这样用C#调用它:
o = new C();
var bytes = new byte[3];
o.FillBytes(ref bytes);
希望它可以帮到某人!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.