源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

Lua和C++语言的交互详解

  • 时间:2021-03-03 03:59 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:Lua和C++语言的交互详解
[b]前言[/b] 写过Windows程序的人都知道,对于应用程序,如果需要在本地保存一些配置信息,我们经常将这些配置信息写在注册表或者本地的配置文件中,很多应用都是将一些配置信息写在配置文件中,比如以ini结尾的文件,这种配置文件很多,使用的很广泛,然后应用程序在启动的时候,就会解析这个配置文件,读取一些配置信息。 Lua的一项重要用途就是作为一种配置语言。而这篇文章将结合Lua来扩展应用程序,这种方式提供了更大的灵活性和便利性。 这篇博文主要总结的是使用C++和Lua进行交互,涉及到获取Lua中普通变量的值,Lua中table的值和调用Lua中的函数。下面就开始吧。 [b]从一个最简单的例子开始[/b] 一个GUI程序,从配置文件读取窗口的大小,从而实现设置窗口的大小。下面我就写一个基于MFC的窗体程序来完成这个功能。点击这里去下载完成代码工程。我把重点的代码贴出来:
[url=http://xiazai.jb51.net/201408/tools/ResizeDlg.rar]源代码[/url]这里下载。 [b]table操作[/b] 在Lua中,对于table这种bug一样存在的东西,如果C API无法操作table,那我们还能不能愉快的玩耍了。让我们来看看C API如何操作table。现在有如下Lua语句:
[url=http://www.1sucai.cn/]http://www.1sucai.cn[/url]"); // 先将值压入栈 lua_setfield(L, -2, "website"); // 将值设置到table中   // 再设置一个值 lua_pushstring(L, "果冻想 | 一个原创文章分享网站"); lua_setfield(L, -2, "description");
我将重要的几行代码贴上来了,最重要的就是一个lua_newtable函数,该函数会创建一个新的table,并将这个table置于栈中,接下来就和上面设置table的值是一样的。源代码[url=http://xiazai.jb51.net/201408/tools/LuaLearning3.rar]下载一[/url]、[url=http://xiazai.jb51.net/201408/tools/LuaLearning4.rar]下载二[/url]。  [b]调用Lua函数[/b] 是的,你没有看错,你可以在一lua文件中定义一个函数,然后在C++中调用这个函数,貌似“高大上”的感觉。现在我就来说说这个“高大上”的功能;习惯性的上代码:
[url=http://xiazai.jb51.net/201408/tools/LuaLearning5.rar]下载[/url]。 [b]总结[/b] 到此这篇文章总结完毕,总共花费4天的业余的零碎时间,时间主要花费在demo的编写上,好了,这篇文章献上,希望对大家有帮助。如果你觉的还不错,可以将这篇文章分享给更多的朋友。当然了,你也可以扫描页面右侧的二维码资助我写出更好的文章了,那定是极好的。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部