0

次の Windows GDI 型を C# で定義する際に少し助けが必要です。C#で a の形式のデータがありbyte[]、C# で次のようにマーシャリングまたはキャストする必要があります。適切な構造体を定義する必要があると思いますか? これはタイプです:

名前

META_POLYLINE

最も近い API 呼び出し

#include <windows.h>
BOOL32 Polyline
(
    HDC32 hdc,
    const POINT32 *pt,
    INT32 count
);

説明

    U16 アレイ なし 値
    --------------------------- --------------
    0 点数
    ポイントの末尾 x まで奇数ごとに 1 つ
    ポイントの末尾 y まででも 2 個ずつ

ポリラインはポイントのリストです。ポリゴンとは異なり、ポリラインは常に塗りつぶされておらず、開くことができます。

4

3 に答える 3

0

PInvoke.netのPolyline エントリはもうご覧になりましたか?

于 2009-11-21T00:05:05.883 に答える
0

よし、ポリラインのメタファイル レコード...Buffer.BlockCopyバイト配列から配列への変換を試してみてくださいUInt16

于 2009-11-21T00:08:57.873 に答える
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);
   }
}

(未テスト)

于 2009-11-21T00:17:49.103 に答える