代码生成之旅
托管代码如何映射到C++代码
在托管代码中的每个类,il2cpp.exe都会相应的生成一个有着C++定义的头文件和另外一个进行函数声明的头文件。举个例子,让我们看看UnityEngine.Vector3是如何被转换的。这个类的头文件名字叫UnityEngine_UnityEngine_Vector3.h。头文件名的组成:一开始是程序集名称(这里是UnityEngine),然后跟着命名空间(还是UnityEngine),最后是这个类型的名字(Vector3)。头文件的内容如下:
在托管代码中的每个类,il2cpp.exe都会相应的生成一个有着C++定义的头文件和另外一个进行函数声明的头文件。举个例子,让我们看看UnityEngine.Vector3是如何被转换的。这个类的头文件名字叫UnityEngine_UnityEngine_Vector3.h。头文件名的组成:一开始是程序集名称(这里是UnityEngine),然后跟着命名空间(还是UnityEngine),最后是这个类型的名字(Vector3)。头文件的内容如下:
AOT编译器将由 .NET 输出的中间语言(IL)代码生成为C++代码。 运行时库提供服务和抽象,例如垃圾收集器、对线程和文件的独立平台访问以及内部调用的实现(直接修改托管数据结构的本机代码)。