質問

挨拶ます。

C#の場合:私はint型を持っている場合は[]配列は、

このように宣言しました
int[] array = new array[size];

この配列からのIntPtrを取得する方法はありますか?

事は、私はEmguCVフレームワークを使用している、およびアレイから画像を構築するために、画素データのIntPtrをとる画像を作成するためのコンストラクタが存在することである([] INT)。

Image<Gray,Int32> result = new Image<Gray,int>(bitmap.Width,bitmap.Height,stride,"**array.toPointer??**");

ところで、誰かがストライドを計算する方法を私に言ったことができれば、それは素晴らしいことだ。

役に立ちましたか?

解決

あなたはGCHandleを使用して、安全でないコードなしでこれを行うことができるはず。ここにサンプルがあります:

GCHandle handle = GCHandle.Alloc(array, GCHandleType.Pinned);
try
{
    IntPtr pointer = handle.AddrOfPinnedObject();
}
finally
{
    if (handle.IsAllocated)
    {
        handle.Free();
    }
}

他のヒント

このように、危険なコードを使用します:

unsafe
{
  fixed (int* pArray = array)
  {
    IntPtr intPtr = new IntPtr((void *) pArray);
  }
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top