zhouqijie

一、概述

与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[]