C++ 封装Lua之我行我素

背景

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

无奈

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

实现

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

问题

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

总结

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

《C++ 封装Lua之我行我素》

    原文作者:尹名扬
    原文地址: https://segmentfault.com/a/1190000008508569
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞