INT []配列からのIntPtrを取得することは可能でしょうか?
質問
挨拶ます。
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);
}
}
所属していません StackOverflow