![]() |
1
3
使用structlayout.sequential创建非托管结构的托管版本(确保按相同顺序放置)。然后您应该能够像传递给任何托管函数一样传递它(例如,验证(mystruct[]pstructs)。 例如,假设我们的本机函数具有以下原型:
本地mystruct定义如下:
然后在C中,定义结构的托管版本,如下所示:
管理原型如下:
然后,可以调用传递mystruct结构数组的函数,如下所示:
|
![]() |
2
1
你可以使用 Marshall.StructureToPtr 以获取可传递到本机mystrut*数组的intptr。 但是,我不确定如何直接从列表中执行此操作。我相信在将其传递给本机代码之前,您需要将其转换为数组并使用pin_ptr(以防止GC移动您的内存)。 |
![]() |
rookie · 检查函数模板的所有参数包参数是否属于int 1 年前 |
![]() |
ivaigult · -W转换和隐式字符串到布尔类型转换 1 年前 |
![]() |
rainer · 后台插入程序的初始化 1 年前 |
![]() |
Community wiki · 以理智、安全和高效的方式复制文件 1 年前 |
|
Shefali Kanaujia · 对C中向量的向量进行排序++ 1 年前 |
|
Ma Joonyoung · 粗粒度和细粒度链表的时间比较 1 年前 |