Question

Bonjour.

En C #: Si j'ai un tableau int [] déclarée comme ceci

int[] array = new array[size];

il existe un moyen d'obtenir le IntPtr de ce tableau?

La chose est que j'utilise le cadre EmguCV, et il est un constructeur pour créer une image qui prend un IntPtr aux données de pixels, afin de construire une image à partir d'un tableau (int []).

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

Par ailleurs, si quelqu'un pouvait me dire comment calculer la foulée, ce serait génial.

Était-ce utile?

La solution

Vous devriez être en mesure de le faire sans danger en utilisant le code GCHandle. Voici un exemple:

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

Autres conseils

Utilisez le code dangereux, comme ceci:

unsafe
{
  fixed (int* pArray = array)
  {
    IntPtr intPtr = new IntPtr((void *) pArray);
  }
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top