c#数组内存分配

本文关键字:分配 内存 数组 | 更新日期: 2023-09-27 18:02:08

我正在使用Andor_SDK(他们提供的相机sdk)编写一个WinForm应用程序。SDK是用几种语言编写的:c++, c#,vb, labview。我的问题如下:为了从相机的内部存储器中检索图像,我需要调用一个函数。

c++:

unsigned int WINAPI GetOldestImage(at_32* arr, unsigned long size)

要使用这个函数,你需要分配足够大的数组(关于图像大小和它们的数量),并将该指针传递给函数。在c++中这不是问题

我的问题是我如何做一些类似的工作在c#

作为参考,c#中调用的函数是:

uint Andor_SDK.GetOldestImage(int[] arr, uint size)

c#数组内存分配

既然你已经展示了c#函数签名,我假设这意味着你或其他人已经为这个C API编写了p/Invoke定义。

考虑到这一点,你应该可以这样调用它:

int[] arr = new int[1024];
uint result = Andor_SDK.GetOldestImage(arr, arr.Length);