Как вернуть байт [] в C# в C++ CLR

Я использую C++ CLR, чтобы обернуть родную C++ dll. Таким образом, Cll 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

1 ответ

Решение

Вот как вы объявляете байтовый массив в C++ / CLI:

array<System::Byte>^

Google твой друг...

Другие вопросы по тегам