memcpy in .NET **gelöst**
-
Hallo Leute,
gibt es für array so eine Funktion wie memcpy zum füllen der Array?
array<unsigned char> ^rgubByteArry; rgubByteArry = gcnew array<unsigned char>(100);
und kann man oben bei der definition schon eine länge festlegen?
MfG
-
Destiniy schrieb:
gibt es für array so eine Funktion wie memcpy zum füllen der Array?
Destiniy schrieb:
rgubByteArry = gcnew array<unsigned char>(100);
und kann man oben bei der definition schon eine länge festlegen?
Indem man anstatt 100 seine gewünschte Zahl einsetzt.
-
also die CopyTo Methode sieht ganz gut aus kann ich dem auch ein c Array übergeben
array<unsigned char> ^rgubByteArry; unsigned char c_array[100]; rgubByteArry = gcnew array<unsigned char>(100); rgubByteArry.CopyTo(c_array,100);
wird mir doch einen Fehler liefern?
zur zweiten Frage ich meine ob ich bei der Definition der referenz schon eine Länge mitgeben kann damit man nur ein Array der länge 100 instanziieren kann?
MfG
-
Und warum benutzt Du für das C Array nicht einfach memcpy?
-
Nein, das geht nicht.
-
array<unsigned char> ^rgubByteArry; unsigned char c_array[100]; rgubByteArry = gcnew array<unsigned char>(100); rgubByteArry.CopyTo(c_array,100); memcpy(rgubByteArry,c_array,100);
also keine der beiden Versionen funktioniert.
Welche Variante habe ich noch?
MfG
-
Also, wenn ich Dich richtig verstehe, dann möchtest Du die Daten von einem managed array in ein native array kopieren, korrekt?
Simon
-
ja beide möglichkeiten also von managed nach unmanaged und von unmanaged nach managed?
ist das überhaupt möglich ohne for scheliefe?
MfG
-
Destiniy schrieb:
ja beide möglichkeiten also von managed nach unmanaged und von unmanaged nach managed?
ist das überhaupt möglich ohne for scheliefe?
MfG
-
Ev. musst Du gar nicht konvertieren:
http://msdn.microsoft.com/en-us/library/9b1fy41s.aspx
-
also wenn ich das so mache
Runtime::InteropServices::Marshal::Copy(c_array,rgubByteArry,0,100);
geht es nicht da der Compiler meint keine der 16 Überladungen trifft zu?
Wie geht das richtig?
Weiso sollte ich das nicht brauchen in dem beispiel kopieren die doch gar keine Daten von einem managed array in ein unmanaged array?
MfG
-
Hi,
so gehts:
array<unsigned char> ^rgubByteArry; unsigned char c_array[100]; rgubByteArry = gcnew array<unsigned char>(100); Runtime::InteropServices::Marshal::Copy((IntPtr)c_array,rgubByteArry,0,100);
MfG