Git Product home page Git Product logo

il2cpp's Introduction

il2cpp

「 在享受C#开发效率的同时, 获得C++编译器往死里优化的执行速度 」

alt tag

How to test

  • Pre-requirements:
    1. Windows 7 or later, 64-bit system;
    2. Visual Studio 2017, C# and C++ desktop dev environments;
  • Open il2cpp.sln;
  • Set test as startup project;
  • Run.
  • You can add your test code into CodeGenTests.cs like this:
    [CodeGen]
    static class MyTest
    {
        // return 0 means PASS, otherwise means FAIL
        public static int Entry()
        {
            int a = 1, b = 2;
            if (a + b != 3)
                return 1;
            return 0;
        }
    }
  • Run test project to test your code.

交流群

  • QQ:548409690

已实现的特性

  • 类型/方法/字段的引用分析, 提取最小依赖子集
  • 虚方法调用与虚表绑定
  • 接口与基类方法的显式重写
  • 协变/逆变分析
  • 内嵌保守式垃圾回收器
  • 静态构造函数
  • try/catch/finally/fault 异常块的解析与代码生成
  • 一维数组/多维数组的代码生成
  • 枚举类型处理
  • 字符串常量代码生成
  • 可空类型代码生成
  • 显式字段布局和结构体长度
  • 方法委托
  • C++ 代码编译工具
  • 数组读写指令
  • 栈操作指令
  • 常量载入指令
  • 方法调用指令
  • 变量/参数/字段读写指令
  • 条件与分支指令
  • 比较指令
  • 数值转换指令
  • 数值运算指令
  • 引用和值类型对象操作指令
  • 指针读写指令
  • 异常处理指令
  • 装箱/拆箱指令
  • 溢出检查指令

明确不支持的特性

  • 运行时创建新类型 (TypeBuilder.CreateType)
  • 运行时生成并执行机器码 (Emit/Expression Trees)
  • 运行时加载 .NET DLL 并实例化其中的类型
  • 运行时实例化不存在的泛型展开 (只支持编译期存在的泛型展开)
  • 运行时增加/删除/修改反射信息
  • 递归的泛型参数类型展开
  • 封送非静态方法委托

正在如火如荼地开发中...
求 star 求测试~

il2cpp's People

Contributors

anydream avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

il2cpp's Issues

How to work with thi il2cpp

Can I convert a csharp dll into a c++ one with your tool? How this works?
Explanations are extremely confusing...
Thanks

能支持ios和android 么?

微软的coreclr和corrt都不支持ios,好像也没有想法支持,估计都打算交给mono了
你这个能支持ios和android 导出么 如果可以,想在游戏引擎层支持这个?

Simple command line tool

Is there a simple command line tool available that makes use of your il2cpp library? I'm interested in using this for curiosity/research reasons, but I've never programmed in C#.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.