Je suis en train de programmer une petite application pour parler avec un périphérique externe via API (les deux en 64 bits). Je suis la méthode suivante à partir du guide, je suis en train d'utiliser:C# - return type int * à partir du code non managé
int* GetRevision(void* cu_ptr, int num)
J'ai essayé de faire PinVoke
Motif:
[DllImport("ABCAPI.dll")]
public static extern IntPtr GetRevision(IntPtr cu_ptr, int num);
Et j'ai essayé de copier le IntPtr
à un tableau int:
var check = GetRevision(device_cu_ptr, 1);
int[] arr = new int[10];
Marshal.Copy(check, arr, 0, arr.Length);
Existe-t-il un meilleur moyen de convertir un INT*
en Int[]
en C#? Ou pourrait-il y avoir une erreur dans mon code?
Votre dernière phrase fait allusion au fait que ce code ne fonctionne pas. Si tel est le cas, pouvez-vous expliquer exactement pourquoi ce n'est pas? – CodeCaster
duplication possible de [Pointeurs en C# pour faire tableau int?] (Http://stackoverflow.com/questions/2546706/pointers-in-c-sharp-to-make-int-array) –
@PaulZahra: Trouvé qu'un aussi, mais non, pas un dupe. C'est principalement sur le malentendu, pas comment le réparer. –