我有C#的问题.我试图调用以下C++方法.
void SetPropertyInfoList(int count, ref AfwPropertyInfo propertyInfo);
Run Code Online (Sandbox Code Playgroud)
我想用x AfwPropertInfo结构创建一个内存块.我不知道怎么在内存中直接跟在一起.
有谁能够帮我?
你实际拥有的是一个数组.我希望C++代码看起来像这样:
void SetPropertyInfoList(int count, AfwPropertyInfo* propertyInfo);
Run Code Online (Sandbox Code Playgroud)
现在,AfwPropertyInfo*没有完全指定参数是什么.它可以是指向单个AfwPropertyInfo结构的指针.或者它可能是一个数组AfwPropertyInfo.显然,在这种情况下,它是后者.
将p/invoke声明更改为:
[DllImport(...)]
static extern void SetPropertyInfoList(
int count,
AfwPropertyInfo[] propertyInfo
);
Run Code Online (Sandbox Code Playgroud)
创建一个结构数组:
AfwPropertyInfo[] propertyInfo = new AfwPropertyInfo[count];
Run Code Online (Sandbox Code Playgroud)
然后在调用非托管函数之前初始化数组的成员:
SetPropertyInfoList(propertyInfo.Length, propertyInfo);
Run Code Online (Sandbox Code Playgroud)