一、概述
与PInvoke不同,没有中间层将托管类型转换为非托管类型或相反。使用嵌入式运行时,当您注册内部调用时,或者当您调用方法时,您需要使用运行时所需的数据类型。
这意味着您需要先将 C 类型转换为 Mono 运行时类型,然后才能将它们传递给 Mono,或者必须先将这些 Mono 类型转换为 C 类型,然后才能使用它们。
二、类型对应表
C Type | Mono Type | CSharp Type |
---|---|---|
MonoClass* | C#类 | |
MonoObject* | C#对象 | |
MonoClassField* | C#字段 | |
int、float、struct | (值类型直接传递) | int、float、struct |
指针 | void* | IntPtr |
strings、char * | MonoString * | String |
c 数组 | MonoArray * | Type[] |