如何在c#中的内存中直接创建一个接一个的结构

How can I create structs directly after each other in memory in c#?

本文关键字:一个 结构 内存 创建      更新时间:2023-10-16

我对C#有问题。我正在尝试调用以下C++方法。

void SetPropertyInfoList(int count, ref AfwPropertyInfo propertyInfo);

我想用x个AfwPropertInfo结构创建一个内存块。我不知道如何在记忆中一个接一个地做这件事。

有人能帮我吗?

实际拥有的是一个数组。我希望C++代码看起来像这样:

void SetPropertyInfoList(int count, AfwPropertyInfo* propertyInfo);

现在,AfwPropertyInfo*并没有完全指定参数是什么。它可以是指向单个AfwPropertyInfo结构的指针。或者它可以是CCD_ 3的阵列。显然,在这种情况下是后者。

将p/invoke声明更改为如下:

[DllImport(...)]
static extern void SetPropertyInfoList(
    int count, 
    AfwPropertyInfo[] propertyInfo
);

创建一个结构数组:

AfwPropertyInfo[] propertyInfo = new AfwPropertyInfo[count];

然后在调用非托管函数之前初始化数组的成员:

SetPropertyInfoList(propertyInfo.Length, propertyInfo);
相关文章: