2011-10-10 14 views
12

Używam C++ CLR do owinięcia natywnego dll C++. Tak, aby biblioteka DLL C++ mogła być dostępna przez projekt C#.Jak przywrócić bajt [] do C# w C++ CLR

Problem polega na tym, że gdy chcę wrócić byte [] do C# i napisać taki kod w CLR:

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

ale nie może przejść kompilację. Czy ktoś może mi pomóc?

błąd

kompilacja:

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

"nie może przejść kompilację" - Nie sądzę, żebyś dał nam jakiś pomysł na temat błędu kompilacji? –

+0

Dzięki za odpowiedź! Oto błąd kompilacji: błąd C3409: pusty blok atrybutu jest niedozwolony błąd C3409: pusty blok atrybutu jest niedozwolony błąd C2146: błąd składni "^": błąd C2334: nieoczekiwany token (y) poprzedzający "{'; pomijam widoczną funkcję – Spark

Odpowiedz

24

ten sposób zadeklarować tablicę bajtów w C++/CLI:

array<System::Byte>^ 

Google jest twoim przyjacielem ...

+0

Masz rację, wielkie dzięki! – Spark

+36

Google zaprosił mnie tutaj. – rulestein

Powiązane problemy