我怎样才能为这个float[]
得到一个IntPtr
,这样我就可以对它进行操作了?或者请告诉我任何可以操作的方法。(我尝试过使用Array,封送,但所有操作都不起作用。)请看以下内容。
任何帮助都将不胜感激!
IntPtr pt = IntPtr.Zero;
Camera.Memory.ToIntPtr(s32MemID, out pt);
MIL.MbufPut(MilImage, pt);
> C:\Ctest\idsCS\idsCS\Form1.cs(100,35): error CS1503: Argument '2': cannot convert from 'System.IntPtr' to 'float[]'
这些方法的语法
uEye.Memory.ToIntPtr(out System.IntPtr ptr)
**uEye.Memory.ToIntPtr**(int s32MemId, out System.IntPtr ptr)
描述
返回指向活动/给定图像内存ID的图像内存的指针。
参数
s32MemId(Image memory ID)
ptr(Pointer to the image memory)
void **MbufPut**(
MIL_ID DestBufId, //in
const void *UserArrayPtr //in
)
发布于 2014-12-29 08:23:50
使用Marshal.Copy
(此重载:http://msdn.microsoft.com/en-us/library/a53bd6cz(v=vs.80).aspx )
发布于 2021-12-17 13:25:28
现在,我会用Span
IntPtr ptr = ... ;
Span<T> sp = new Span<T>((T*)ptr, ...);
但这仍有一定的局限性。请考虑到Span是一个只读结构,只能在堆栈上分配。
https://stackoverflow.com/questions/27685435
复制相似问题