我需要一点帮助来定义C#中的以下Windows GDI类型。我在C#中以byte[]
的形式获得数据,我需要以某种方式封送或在C#中将其转换为以下内容。我想我需要定义正确的结构?这是类型:
META_POLYLINE
#include <windows.h>
BOOL32 Polyline
(
HDC32 hdc,
const POINT32 *pt,
INT32 count
);
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
折线是一个点列表。与多边形不同,折线始终未填充,并且可以打开。
答案 0 :(得分:0)
答案 1 :(得分:0)
好的,折线的元文件记录......您可能想尝试从字节数组到UInt16
数组执行Buffer.BlockCopy
。
答案 2 :(得分:0)
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);
}
}
(未测试的)