![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
iL2Cpp
TO_ZRG
这个作者很懒,什么都没留下…
展开
-
Building a project using IL2CPP
在这篇文章中,我将与以前的文章有所不同,不讨论IL2CPP在编译时或runtime的工作方式。相反,我们将简要概述如何开发和测试IL2CPP。原创 2020-07-09 16:19:28 · 586 阅读 · 0 评论 -
IL2CPP Internals: P/Invoke Wrappers
在这篇文章中,我们将探讨il2cpp.exe如何生成用于托管代码和本机代码之间互操作的wrap方法和类型。具体来说,我们将查看blittable和非blittable类型之间的区别,理解字符串和数组封送处理,并了解封送处理的成本。The setup本机代码是这样的:#include <cmath> extern "C" {int Increment(int i) {return i + 1;} bool StringsMatch(const char* l, co.原创 2020-07-07 17:15:59 · 277 阅读 · 0 评论 -
IL2CPP Internals: Generic sharing implementation
在上一篇文章中,我们研究了如何在为IL2CPP脚本后端生成的c++代码中调用方法。在这篇文章中,我们将探讨它们是如何实现的。具体来说,我们将尝试更好地理解使用IL2CPP生成的代码的最重要特性之一——泛型共享(generic sharing)。泛型共享允许许多泛型方法共享一个公共实现。这将导致IL2CPP脚本后端可执行文件大小的显著减小。请注意,泛型共享并不是一个新想法,Mono和. net runtime也使用泛型共享。最初,IL2CPP没有执行泛型共享。最近的改进使它更加强大和有益。因为il2c.原创 2020-07-06 16:37:39 · 415 阅读 · 0 评论 -
L2CPP Internals: Method calls
在这篇文章中,我们将研究il2cpp.exe生成的c++代码如何调用托管代码中的方法。具体来说,我们将研究六种不同类型的方法调用Direct calls on instance and static methods:直接调用实例和静态方法 Calls via a compile-time delegate:通过编译时委托调用 Calls via a virtual method:通过虚方法调用 Calls via an interface method:通过接口调用 Calls via a .原创 2020-07-06 14:19:05 · 356 阅读 · 0 评论