Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch
Ein guter .NET-Snippetkonverter(der ist verfügbar). Programmierfragen über PN / Konversation werden ignoriert!
Gibt zwei Möglichkeiten in C#:
1. Du verwendest unsafe um das Array zu fixieren. Daraus erhältst du einen Pointer, der in IntPtr konvertierbar ist (mittels Stadardkonvertierung).
C#-Quellcode
fixed (byte* ptr = byteArray)
{
//"(IntPtr)ptr" gibt den IntPtr
}
2. Du verwendest Marshal.UnsafeAddrOfPinnedArrayElement, was etwas ähnliches macht, es aber kapselt (ist deshalb nur interessant, wenn es um reines Marshalling geht).
Außerdem kann auch AddrOfPinnedObject verwendet werden, das funktioniert dann, wie das Konstrukt über fixed. Allerdings ist, wo möglich, eher fixed zu verwenden, das erledigt das alles für dich automatisch.
Gruß
~blaze~
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „~blaze~“ ()
Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch
Ein guter .NET-Snippetkonverter(der ist verfügbar). Programmierfragen über PN / Konversation werden ignoriert!
Ich wollte ein Natives Array daraus erstellen. Habe es aber nun doch anders gemacht.
Da sind wir keinen Schritt weiter. Was ist Dein Plan?
Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch
Ein guter .NET-Snippetkonverter(der ist verfügbar). Programmierfragen über PN / Konversation werden ignoriert!