C#数组内存分配

C# Array memory allocation

我正在使用 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 API.

编写了 P/Invoke 定义

鉴于此,您应该可以这样称呼它:

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