をラップして、タイプ セーフなポインター構造を作成したいと思いますIntPtr
。
struct Pointer<T>
{
private IntPtr ptr;
// methods marshalling from and to T
}
Pointer<T>
しかし、インスタンスを s であるかのようにマーシャリングできるようにしたいIntPtr
ので、同じサイズとレイアウトにする必要があります。それは保証されていますか?
そうでない場合は、追加しますか
[StructLayout(LayoutKind.Sequential, Pack = 1)]
頂点で?
基本的に、最後にこの C 構造体をマーシャリングできるはずです
struct Foo {
int *data;
};
この C# 構造体を使用して:
struct Foo
{
public Pointer<int> data;
}