Wie analysiere ich einen Polyline -Metafile -Rekord aus einem Byte -Array?
Frage
Ich brauche ein wenig Hilfe bei der Definition des folgenden Windows -GDI -Typs in C#. Ich habe die Daten in Form von a byte[]
In C#, und ich muss es irgendwie als Folgendes in C#marschallieren oder wirken. Ich nehme an, ich muss die richtige Struktur definieren? Dies ist der Typ:
NAME
META_POLYLINE
Nächster API -Anruf
#include <windows.h>
BOOL32 Polyline
(
HDC32 hdc,
const POINT32 *pt,
INT32 count
);
BEZEICHNUNG
U16 array no Value --------------------------- -------------- 0 no of points 1 each odd until the end x of the point 2 each even until the end y of the point
Eine Polylinie ist eine Liste von Punkten. Im Gegensatz zu einem Polygon ist eine Polylinie immer nicht nachgefüllt und kann offen sein.
Lösung
byte[] buffer;
fixed (byte* b = buffer)
{
ushort* ptr = (ushort*)b;
int count = (int)*ptr;
var points = new Point[count];
for (int i = 0; i < count; i++)
{
int x = (int)*(++ptr);
int y = (int)*(++ptr);
points[i] = new Point(x, y);
}
}
(Ungetestet)
Andere Tipps
Hast du dir das angesehen? Polyline -Eintrag auf Pinvoke.net noch?
Okay, ein Metafile -Rekord für eine Polylinie ... Sie möchten vielleicht versuchen, eine zu machen Buffer.BlockCopy
vom Byte -Array nach a UInt16
Array.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow