2011-10-10 17 views
12

Sto usando C++ CLR per racchiudere una DLL nativa in C++. In modo che la DLL CLR C++ è accessibile da un progetto C#.Come restituire un byte da [] a C# in C++ CLR

Il problema è che quando voglio tornare un byte [] per C#, e scrivere come codice CLR:

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

ma non può passare la compilazione. Qualcuno può aiutarmi?

errore

compilazione:

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

"non può passare compilation" - Suppongo che non potresti darci qualche idea su quale sia l'errore di compilazione? –

+0

Grazie per la tua risposta! Ecco l'errore di compilazione: errore C3409: blocco di attributi vuoto non consentito errore C3409: blocco di attributi vuoto non consentito errore C2146: errore di sintassi "^": errore C2334: token imprevisti che precedono '{'; Salta la funzione apparente – Spark

risposta

24

Questo è il modo in cui si dichiara un array di byte in C++/CLI:

array<System::Byte>^ 

Google è tuo amico ...

+0

Hai ragione, grazie mille! – Spark

+36

Google mi ha portato qui. – rulestein