背景

我接到一个需求, 将我写的一个Lua脚本使用C++封装起来, 说实话我不想这么做, 因为我觉得这么做没有意义, 首先这个脚本是给一个行业软件作输入的, 也就是说这个行业软件是"解释器", 这个Lua里大量调用了这个行业软件的C API. 其目的就是为了适应业务的快速多变性,所以将这个Lua脚本封装成C++我觉得是画蛇添足...

无奈

但是接到需求,自然不能不做啊,这其中的道理我就不多加论述了

实现

我没有将整个程序重写, 这个程序的功能太多了, 重写的工作量太大了(其实最关键的是我不想这么做), 我就想着将整个Lua程序作为一个字符串, 让C++ 调用 Lua C API 直接执行这个"大字符串", 这就是思路, 这样我的Lua程序就不需要修改了, 后面有新的需求我就直接操作这个Lua文件, 然后再封装到这个C++模块中

问题

在实现的过程中遇到了问题, 问题就是这个程序有1M多的大小, 当作一个大字符串直接放到程序中, 编译器会报告字符串太大了, 这个时候需要明白编译时编译报错和运行时错误在概念上的区别, 只有这样才能在最短的时间解决这个问题, 不过我由于当时没有想明确的概念, 致使花费了40分钟才解决, 也算是一个教训了

总结

明白事物发展的规律, 才能真正顺其道而行

C++ 封装Lua之我行我素相关推荐

  1. 菜鸟学习 - Unity中的热更新 - Lua和C#通信

    孙广东 2015-4-6 热更新我是个菜鸟,感谢网上的各位的奉献,这次又当一回搬运工. 准备: 1.了解Lua的语法 推荐书籍<Lua程序设计 第二版> 2.使用ULua插件进行通信 尽量 ...

  2. Unity中的热更新 - Lua和C#通信

    准备: 1.了解Lua的语法 推荐书籍<Lua程序设计 第二版> 2.使用ULua插件进行通信 尽量早上真机.因为Bug问题特别多. 大杂烩: 更新LUa其实也是更新资源. Lua被看作一 ...

  3. 初学者学习 - Unity中的热更新 - Lua和C#通信

    菜鸟学习 - Unity中的热更新 - Lua和C#通信 孙广东 2015-4-6 热更新我是个菜鸟,感谢网上的各位的奉献,这次又当一回搬运工. 准备: 1.了解Lua的语法 推荐书籍<Lua程 ...

  4. ios使用lua详解

    介绍 语言介绍 lua和python 脚本语言中运行速度最快的是 Lua,lua是基于寄存器的虚拟机实现(更简单,更高效),python是基于堆栈的,都是动态数据类型 python有自己的库,是基于自 ...

  5. Lua C API 的正确用法

    Lua C API 的正确用法 转载于云风的博客 Lua 作为一门嵌入式语言,提供了完备的 C API 供 Lua 代码和宿主程序交互,当然,宿主语言最好是 C 或 C++ .如果是其它语言,比如最近 ...

  6. Lua5.1编程二:Lua高级特性

    1 数据结构 1.1 数组 对table使用数字索引,即把table当数组使用.约定数组下标从1开始. 若索引中间有空洞,table并不会为空洞索引分配空间. 只有当表是顺序表时,#tab返回的长度才 ...

  7. projectanarchy中 调用Lua 脚本

    引言 Vision 的 Lua 编辑工具组提供多种节省时间的功能,例如代码完成和预定义代码模板.  重要说明: 请注意,我们采用 SWIG 封装 Lua 中的 C++ 类,所以所有对象的行为都类似指针 ...

  8. Facebook 万字长文:AI 模型全部迁移至 PyTorch 框架

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 转自 | 新智元 来源 | Facebook AI Blog 编辑 ...

  9. Facebook万字长文:AI模型全部迁移至PyTorch框架

    来源:新智元本文约3800字,建议阅读8分钟PyTorch 占领 Facebook. [ 导读 ] 2017年,PyTorch诞生,成为当下最流行的深度学习框架.近日,Facebook宣布让PyTor ...

最新文章

  1. 【力扣网练习题】罗马数字转整数
  2. 神经网络参数量的计算:以UNet为例
  3. maven项目的构建命令
  4. BCH协议升级倒计时——超过68%的BCH全节点已支持升级
  5. ExtJS学习:MVC模式案例(三)
  6. [css] 请写出:link、:visited、:hover、:active的执行顺序
  7. Windows XP操作系统自带工具应用详解(转)
  8. 袖珍计算机英语手册,英语袖珍迷你系列__中考英语速记手册__刘国婷.pdf
  9. php提升并发,php高并发处理
  10. java打印sscil码_SSCI期刊投稿指南库
  11. cyj sql 收藏
  12. 数据搜索的新战场,我们为什么需要向量数据库?
  13. Word2010无法输入中文
  14. mysql 自增 空洞_MySQL auto_increment空洞问题
  15. 【unity 保卫星城】--- 开发笔记04(武器管理系统)
  16. 简单粗暴认识jieba(结巴)
  17. web数据管理 期末
  18. Elasticsearch:aggregation 介绍
  19. Visual Studio创建C语言编程环境
  20. 【HTML5响应式网页设计T1-T2】

热门文章

  1. C/C++面试题—实现MyString类
  2. 认识 java JVM虚拟机选项 Xms Xmx PermSize MaxPermSize 区别
  3. 非常详尽的 Shiro 架构解析
  4. ntp服务器同步时间详细配置
  5. https p12证书请求解决问题过程
  6. pat00-自测2. 素数对猜想 (20)
  7. cocos2d-x多分辨率自适配及因此导致的CCListView的bug修复
  8. 2个基础操作案例带你入门MySQL
  9. 50年后的地球什么样?大数据、AI、量子计算的书单给你答案
  10. LwIP移植到FreeRTOS(STM32F107+DP83848)