In meinem Code ich einen UInt64-Wert bin zu berechnen, dann es wie folgt aus Gießen:Reinterpreting UInt64 als Struktur
return *(Cell*)packedUInt64;
Zelle eine Struktur ist. Marshal.SizeOf (new Cell()) gibt 8 aus, also sollte es mit einem UInt64 übereinstimmen, aber die obige Darstellung stürzt mit AccessViolationException ab. Ich könnte wahrscheinlich sicherere Methoden wie Marshal.StructureToPtr ausprobieren, aber ich frage mich immer noch, wo der Fehler in meinem Code ist? Vielleicht ein Problem mit der Anpassung der Ausrichtung?
Ein Grund, warum ich vor Marshal zurückschrecke. StructureToPtr ist, dass es ein bisschen langsam ist. –
'StructureToPtr' ist genau das, was Sie brauchen, wenn Sie fragen, wie Sie es vermeiden können. –