我正在编写一个小型应用程序,以便通过API(均为64位)与外部设备进行通讯。我从尝试使用的指南中获得了以下方法:
int* GetRevision( void* cu_ptr, int num)
我试图做PinVoke
模式:
[DllImport("ABCAPI.dll")]
public static extern IntPtr GetRevision(IntPtr cu_ptr, int num);
我试图将其复制IntPtr
到一个int数组:
var check = GetRevision(device_cu_ptr, 1);
int[] arr = new int[10];
Marshal.Copy(check, arr, 0, arr.Length);
有没有更好的方法在C#中将转换INT*
为Int[]
?还是我的代码可能有错误?
好的,好像Marshal.Copy ist是转换这些数据类型的正确方法。
var check = GetRevision(device_cu_ptr, 1);
int[] arr = new int[10];
Marshal.Copy(check, arr, 0, arr.Length);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句