指針)
適合階段:進階 / 深入適合讀者:已經會用mono_add_internal_call,想弄清楚底層發(fā)生了什么,以及想設計一套可維護的引擎綁定層的客戶端、引擎程序員說明:運行時內部實現(xiàn)以 Mono 主線源碼為參照(metadata/icall.c、metadata/marshal.c、mini/mini-runtime.c、mini/method-to-ir.c)。內部函數(shù)名、細節(jié)隨版本變化,理解流程即可,不要依賴具體實現(xiàn)“大廠實踐”部分以公開資料為依據(jù):Unity 的 C# 參考源碼(UnityCsReference)、IL2CPP 生成代碼、Godot 3.x 的 Mono 模塊等,不涉及任何未公開的內部實現(xiàn)一、ICall 在整個互操作體系里的位置C# 調用原生代碼有三條路:方式聲明方式誰負責找到函數(shù)參數(shù)轉換誰能用InternalCall