IntPtr to StructArray
-
Hallo Leute,
ich möchte ein Strutur Array über einen IntPtr füllen. Bisher hab ich
es so gemacht:var data = new T[x]; int size = Marshal.SizeOf(typeof(T)); long LongPtr = ptr.ToInt64(); for (int i = 0; i < x; i++) { IntPtr pt = new IntPtr(LongPtr); data[i] = (T)Marshal.PtrToStructure(pt, typeof(T)); LongPtr += size; }
Geht das vll. auch eleganter? mit unsafe code ist es nich möglich, weil er die größe der generischen Struct Typ nich kennt!
grüße
-
LowLevelCopy schrieb:
Geht das vll. auch eleganter?
Vielleicht, aber ohne zusätzliche Informationen kann man dir schlecht helfen. Mir fehlen mindestens diese Informationen:
- Wie kommst du an den IntPtr?
- Wie sieht die Struktur aus?
- Was ist der Kontext? Wieso verwendest du Marshal?Grüssli