C++ 封装Lua之我行我素

本文分享了一次将Lua脚本封装为C++模块的经历,介绍了背后的思考过程及遇到的问题,如如何处理大字符串编译错误等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景

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

无奈

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

实现

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

问题

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

总结

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

讨论Lua开发请关注

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值