如何在c#中的内存中直接创建结构?
我对C有问题。我尝试调用C++方法。< /P>如何在c#中的内存中直接创建结构?,c#,c++,pinvoke,C#,C++,Pinvoke,我对C有问题。我尝试调用C++方法。< /P> void SetPropertyInfoList(int count, ref AfwPropertyInfo propertyInfo); 我想用x AfwPropertInfo结构创建一个内存块。在记忆中,我不知道如何在彼此之后直接做这件事 有人能帮我吗?你实际上有一个数组。我希望C++代码看起来像这样: void SetPropertyInfoList(int count, AfwPropertyInfo* propertyInfo);
void SetPropertyInfoList(int count, ref AfwPropertyInfo propertyInfo);
我想用x AfwPropertInfo结构创建一个内存块。在记忆中,我不知道如何在彼此之后直接做这件事
有人能帮我吗?你实际上有一个数组。我希望C++代码看起来像这样:
void SetPropertyInfoList(int count, AfwPropertyInfo* propertyInfo);
[DllImport(...)]
static extern void SetPropertyInfoList(
int count,
AfwPropertyInfo[] propertyInfo
);
现在,AfwPropertyInfo*
没有完全指定参数是什么。它可以是指向单个AfwPropertyInfo
struct的指针。或者它可以是AfwPropertyInfo
的数组。显然,在这种情况下是后者
将p/invoke声明更改为如下所示:
void SetPropertyInfoList(int count, AfwPropertyInfo* propertyInfo);
[DllImport(...)]
static extern void SetPropertyInfoList(
int count,
AfwPropertyInfo[] propertyInfo
);
创建结构的数组:
AfwPropertyInfo[] propertyInfo = new AfwPropertyInfo[count];
然后在调用非托管函数之前初始化数组的成员:
SetPropertyInfoList(propertyInfo.Length, propertyInfo);
您是否尝试过使用
AfwPropertyInfo[2]
创建结构数组?谢谢您的快速回答。我的方法属于一个对象。方法如何知道它属于哪个对象?您不能p/invoke实例方法。仅限非成员函数或静态函数。