我遇到了C#的问题。我试着按照C ++方法调用。
void SetPropertyInfoList(int count, ref AfwPropertyInfo propertyInfo);
我想用x AfwPropertInfo结构创建一个内存块。我不知道如何在记忆中直接跟在一起。
有人能帮助我吗?
答案 0 :(得分:5)
你实际拥有的是一个数组。我希望C ++代码看起来像这样:
void SetPropertyInfoList(int count, AfwPropertyInfo* propertyInfo);
现在,AfwPropertyInfo*
未完全指定参数是什么。它可以是指向单个AfwPropertyInfo
结构的指针。或者它可以是AfwPropertyInfo
的数组。显然在这种情况下是后者。
将p / invoke声明更改为:
[DllImport(...)]
static extern void SetPropertyInfoList(
int count,
AfwPropertyInfo[] propertyInfo
);
创建结构数组:
AfwPropertyInfo[] propertyInfo = new AfwPropertyInfo[count];
然后在调用非托管函数之前初始化数组成员:
SetPropertyInfoList(propertyInfo.Length, propertyInfo);