2011-10-10 12 views
12

Estoy usando C++ CLR para envolver un dll nativo de C++. Para que el proyecto C# pueda acceder a la dll CL ++ de C++.Cómo devolver un byte [] a C# en C++ CLR

El problema es que cuando quiero devolver un byte [] para C#, y escribir dicho código de CLR:

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

pero no puede pasar compilación. ¿Alguien puede ayudarme?

error

compilación:

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

"no puede pasar a la compilación" - Supongo que no podrías darnos una idea de cuál es el error de compilación. –

+0

¡Gracias por su respuesta! Aquí está el error de compilación: error C3409: bloque de atributo vacío no permitido error C3409: bloque de atributo vacío no está permitido error C2146: error de sintaxis "^": error C2334: token inesperado (s) anterior a '{'; omitiendo la función aparente – Spark

Respuesta

24

Ésta es la forma en que declara una matriz de bytes en C++/CLI:

array<System::Byte>^ 

Google es tu amigo ...

+0

Tienes razón, ¡muchas gracias! – Spark

+36

Google me trajo aquí. – rulestein

Cuestiones relacionadas