如何在c++ CLR中返回一个byte[]到c#

本文关键字:byte 一个 c++ CLR 返回 | 更新日期: 2023-09-27 18:10:45

我使用c++ CLR来包装本机c++ dll。使c++ CLR dll可以被c#项目访问。

问题是,当我想返回一个byte[]到c#,并在CLR中编写这样的代码:

static System::Byte[]^ GetTestByteBuffer()
{
    System::Byte[]^ byte = gcnew System::Byte[128];
    return byte;
}

,但它不能通过编译。有人能帮我吗?

编译错误:

error C3409: empty attribute block is not allowed 
error C3409: empty attribute block is not allowed error C2146: syntax error "^": 
error C2334: unexpected token(s) preceding '{'; skipping apparent function

如何在c++ CLR中返回一个byte[]到c#

这是c++/CLI中声明字节数组的方式:

array<System::Byte>^

Google是你的朋友