jco*_*jco 2 c# c++-cli parameter-passing
我对C++/CLI知之甚少,但我有一个需要解决方案的简单问题.我有一个C++/CLI类方法,它接受一个字节数组作为参数.该数组具有预定长度,可以事先在C#中分配.该阵列应该由C++/CLI方法填充数据.
如何声明方法然后从C#调用它?
我尝试过在C++/CLI类中使用以下内容:
public ref class C
{
public:
void FillBytes(array<BYTE^>^ bytes);
};
Run Code Online (Sandbox Code Playgroud)
然后,在C#中:
o = new C();
var bytes = new byte[3];
o.FillBytes(bytes);
Run Code Online (Sandbox Code Playgroud)
但那根本不起作用:).
您是否尝试过使用byte而不是BOOL引用?
void FillBytes(array<System::Byte>^ bytes);
?
// no ^ here
Run Code Online (Sandbox Code Playgroud)
小智 7
我知道很久以前就问过这个问题了,但希望能帮助正在查看这篇文章的其他人.从C++/CLI您需要发送:
void FillBytes(array<unsigned char>^% bytes);
Run Code Online (Sandbox Code Playgroud)
"hat"表示它是CLR类型,%表示您将通过引用传递它,以便C++/CLI填充数组.
然后你可以像这样用C#调用它:
o = new C();
var bytes = new byte[3];
o.FillBytes(ref bytes);
Run Code Online (Sandbox Code Playgroud)
希望它可以帮到某人!
| 归档时间: |
|
| 查看次数: |
8259 次 |
| 最近记录: |