natives Array ohne kopieren in C# verwenden
-
... wie kriegt man das hin?
Hallo an alle Experten, der Titel verrät eigentlich schon worum es geht. Ich habe eine C++ Klasse die ein char Array als Member hat. Damit ich diese Klasse auch mit C# benutzen kann habe ich einen managed C++ Wrapper geschrieben und in meinem C# Projekt binde ich diese managed dll ein. So weit so gut.
Was ich nicht hin bekomme ist mein natives Array bis auf C# Ebene durchzuschleusen.
Ich habne erfolglos versucht es als event Parameter zu übergeben.
Das Event soll so aussehen OnSending( char* Buffer, int Length );Daraus wird jedoch ein sbyte* der nur mit #unsafe compilierbar ist.
Gibts da keinen anderen Weg ??Danke für jede Hilfe !
-
OnSending(..) wird von nativem C++ Code aufgerufen, welches in C# implementiert ist? Habe ich das korrekt verstanden?
Simon
Edit:
nicht von nativem C++ Code, sondern von C++/CLI Code (Wrapper), oder?
-
Meine native C++ Klasse beinhaltet den Speicherbereich und löst das event aus.
-
karl_ranseier schrieb:
Meine native C++ Klasse beinhaltet den Speicherbereich und löst das event aus.
Und der C# Code soll dann den Speicherbereich beschreiben oder auslesen?
-
Dieser Thread wurde von Moderator/in evilissimo aus dem Forum C++ in das Forum C++/CLI mit .NET verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Ev. hilft dir die Klasse UnmanagedMemoryStream; http://msdn.microsoft.com/de-de/library/system.io.unmanagedmemorystream.aspx
-
Ja der Anwender auf C# Seite soll auf diesem Speicher screiben bzw lesen können. Das wäre mein Ziel.
-
Entweder über UnmanagedMemoryStream od. über unsafe.
Ich habe keine andere Möglichkeit gesehen.Simon