我有一个C#的问题。我试图调用以下C++方法。如何在c#中的内存中直接创建结构?
void SetPropertyInfoList(int count, ref AfwPropertyInfo propertyInfo);
我想用x AfwPropertInfo结构创建一个内存块。我不知道如何直接在记忆中做对方。
任何人都可以帮助我吗?
我有一个C#的问题。我试图调用以下C++方法。如何在c#中的内存中直接创建结构?
void SetPropertyInfoList(int count, ref AfwPropertyInfo propertyInfo);
我想用x AfwPropertInfo结构创建一个内存块。我不知道如何直接在记忆中做对方。
任何人都可以帮助我吗?
你实际上有一个数组。我想到的是,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);
感谢您的快速回答。我的方法属于一个对象。该方法如何知道它属于哪个对象? – user3107989
您无法调用/调用实例方法。只有非成员函数或静态函数。 –
您是否尝试过使用'AfwPropertyInfo [2]'创建一个结构数组? –