如何将“System.IntPtr”转换为“float[]”
本文关键字:float 转换 IntPtr System | 更新日期: 2023-09-27 18:35:36
我怎样才能获得这个IntPtr
的float[]
,以便我可以对其进行操作?或者请让我知道任何方法都可以操作。(我尝试过使用数组、封送处理,但全部无法运行。请参阅以下内容。
任何帮助将不胜感激!
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
)
使用 Marshal.Copy
(此重载: http://msdn.microsoft.com/en-us/library/a53bd6cz(v=vs.80).aspx )
如今,我会使用 Span
IntPtr ptr = ... ;
Span<T> sp = new Span<T>((T*)ptr, ...);
但这仍然有一些局限性。考虑到 Span 是只读结构,只能在堆栈上分配。