XLua中lua读写cs对象的原理

LuaCallCS

1. 传递C#对象到Lua

XLua在C#维护了两个数据结构,ObjectPool和ReverseMap。

首次传递一个C#对象obj到Lua时,对象被加入到ObjectPool中,并为它创建一个唯一标识objId,建立obj和objId的双向映射。

ObjectPool: objId->obj ReverseMap: obj->objId

如果该对象的类型是第一次传到Lua,还会为类型创建一个元表typeMetatable。

typeMetatable:包含类成员的访问方法。

把typeMetatable注册到Lua的全局表中,这样就不会被lua gc掉。

LUA_REGISTRY: typeFullName->typeMetatab

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/126808.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql---索引

概要 索引:排序的列表,列表当中存储的是索引的值和包含这个值的数据所在的行的物理地址 作用:加快查找速度 注:索引要在创建表时尽量创建完全,后期添加影响变动大。 索引也需要占用磁盘空间,innodb表数据…

科技战再次升级!国内前沿科技行业影响悬而未决

(图片来源:网络) 美国与中国的科技贸易战正在升级,美国总统拜登发布行政命令限制美国对半导体和微电子、量子信息技术和人工智能等特定行业的跨国投资。在此前美国对中国芯片相关出口的一系列限制之后,又增加了此项新…

每日一题(LeetCode)----二分查找(三)

每日一题(LeetCode)----二分查找(三) 1.题目(69. x 的平方根 ) 给你一个非负整数 x ,计算并返回 x 的 算术平方根 。 由于返回类型是整数,结果只保留 整数部分 ,小数部分将被 舍去 。 **注意…

服务器数据恢复-VSAN环境下ESXI虚拟机无法访问的数据恢复方案

一、用户信息: 广东某单位 二、数据恢复环境: 主机操作系统:ESXI 分区类型:VSAN 存储介质清单 :一共8台服务器节点,每节点2个磁盘组,其中1个磁盘组配置1块SSD固态硬盘,4块1.2T机…

PCL 计算一个平面与一个三角形的交线

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 这里实现一个很有趣的功能,就是获取一个平面与一个三角形的交线,具体的思路很简单,就是借助之前的博客中的思路:Matlab 计算一个平面与一条线段的交点,我们只需要遍历三角形中的所有边即可获取我们想要的交线,…

【Linux】第七站:vim的使用以及配置

文章目录 一、vim1.vim的介绍2.vim基本使用3.vim的命令模式常用命令4.底行模式 二、vim的配置 一、vim 1.vim的介绍 vim编辑器,用来文本编写,可以写代码 它是一个多模式的编辑器 它有很多的模,不过我们暂时先只考虑这三种模式 命令模式插入模…

【ES专题】ElasticSearch快速入门

目录 前言从一个【搜索】说起 阅读对象阅读导航笔记正文一、全文检索1.1 什么是【全文检索】1.2 【全文检索】原理1.3 什么是倒排索引 二、ElasticSearch简介2.1 ElasticSearch介绍2.2 ElasticSearch应用场景2.3 数据库横向对比 三、ElasticSearch环境搭建3.1 Windows下安装3.2…

VueX环境的搭建

一、安装VueX npm i vuex // Vue3安装该版本 npm i vuex3 // Vue2安装该版本 因为我使用的是Vue2,所以安装的是3版本 二、配置VueX文件 在src目录下创建store文件夹,再创建index.js 在index.js中配置如下代码: // VueX配置文件/…

使用resnet18预训练模型实时检测摄像头画面中的物体(画面显示英文类名)

imagenet_class_index.cs文件下载 https://download.csdn.net/download/qq_42864343/88492936 代码 import osimport numpy as np import pandas as pdimport cv2 # opencv-python from tqdm import tqdm # 进度条 from PIL import Image # pillow import matplotlib.pyplot…

Linux shell编程学习笔记17:for循环语句

Linux Shell 脚本编程和其他编程语言一样,支持算数、关系、布尔、字符串、文件测试等多种运算,同样也需要进行根据条件进行流程控制,提供了if、for、while、until等语句。 之前我们探讨了if语句,现在我们来探讨for循环语句。 Li…

云原生---网络

ping ping是网络诊断工具,检测和特点主机地址之间的连通性 可以获得的关键信息: 01目标主机可达性 02RTT往返延迟 03丢包率 04TTL(time to live)数据包到主机经过的路由数量 05ping domain可以得到相应IP address 06ping不通七…

优先队列----数据结构

概念 不知道你玩过英雄联盟吗?英雄联盟里面的防御塔会攻击离自己最近的小兵,但是如果有炮车兵在塔内,防御塔会优先攻击炮车(因为炮车的威胁性更大),只有没有兵线在塔内时,防御塔才会攻击英雄。…

css选择器,布局,BFC

一、选择器的优先关系 !important > 行内样式style > #id > .class > 标签div > 元素选择符 > *通用选择器 二、元素选择符有哪些 包含选择符:E F(E所有的F包含子代,孙代,子子孙孙等等)子选择符:E > F&am…

java多线程异步处理并获取处理后的返回值

示例部分代码&#xff1a; String param "hello"//举例用的线程池&#xff0c;一般建议自定义线程池ExecutorService executorService Executors.newFixedThreadPool(5);CompletionService<Object> completionService new ExecutorCompletionService<&g…

实在智能携手品牌商家,在活动会面中共谋发展

金秋十月&#xff0c;丰收的季节&#xff0c;也是商家们在双11大展拳脚的时刻。为迎战一年一度的双11大促&#xff0c;品牌商家在10月份卯足劲&#xff0c;制定一系列营销方案&#xff0c;争取为店铺带来更多流量和订单。 其中&#xff0c;舍得、同科医药、梅子熟了、宝洁、维…

回归预测 | Matlab实现RIME-CNN-SVM霜冰优化算法优化卷积神经网络-支持向量机的多变量回归预测

回归预测 | Matlab实现RIME-CNN-SVM霜冰优化算法优化卷积神经网络-支持向量机的多变量回归预测 目录 回归预测 | Matlab实现RIME-CNN-SVM霜冰优化算法优化卷积神经网络-支持向量机的多变量回归预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.RIME-CNN-SVM霜冰优化算…

大坝水库安全监测终端MCU,智能化管理的新篇章!

我国目前拥有超过9.8万座水库大坝&#xff0c;其中超过95%为土石坝&#xff0c;这些大坝主要是在上世纪80年代以前建造的。这些水库大坝在保障防洪、发电、供水、灌溉等方面发挥了巨大的作用&#xff0c;但是同时也存在一定的安全风险&#xff0c;比如坝体结构破损、坝基渗漏、…

掌握 JavaScript 的基本语法

一、javascript书写位置 JavaScript 可以写在 HTML 页面中的以下三个位置&#xff1a; 内联脚本&#xff1a;将 JavaScript 代码直接写在 HTML 元素的 onclick、onload、onsubmit 等事件属性中。例如&#xff1a; <button onclick"alert(Hello World)">点击我…

【设计模式】第19节:行为型模式之“中介模式”

一、简介 中介模式定义了一个单独的&#xff08;中介&#xff09;对象&#xff0c;来封装一组对象之间的交互。将这组对象之间的交互委派给与中介对象交互&#xff0c;来避免对象之间的直接交互。 中介模式的设计思想跟中间层很像&#xff0c;通过引入中介这个中间层&#xf…

el-dialog中嵌套iframe之后拿不到iframe的id 的解决办法

在vueelement项目中想用到el-dialog弹窗加iframe嵌套外部页面的方法,但是这时候要获取iframe里面的ID 但是这时候怎么也获取不到 <el-dialog ref"middleFlag" v-if"middleFlag" width"1100px" height1200px title"文章管理" :visib…