- 博客(6)
- 收藏
- 关注
原创 Lua与C/C++的交互6:Lua调用C/C++函数
前几章都是C/C++调用Lua函数,即用Lua扩展C/C++,此时C/C++是应用程序代码,拥有主控制权。这次我想从Lua中调用C/C++,即把C/C++当作库程序,此时Lua拥有主控制权。扩展Lua的一项基本含义就是,应用程序将新的C/C++函数注册到Lua中。Lua调用C/C++函数时,也是通过一个stack来进行的。C/C++函数从这个stack中获取Lua中传过来的函数参数,同时把结果压入
2012-11-20 19:15:14 2402 1
原创 Lua与C/C++的交互5:C/C++调用Lua函数
我想在Lua文件中定义一个Lua函数,然后用C/C++进行调用。调用函数的API协议其实非常简单。首先,将需要调用的函数压入栈中,并依次压入函数的参数。然后,通过lua_pcall进行实际的调用。最后,将调用结果从栈中弹出。以下是完整源代码:#include "stdafx.h"#include "stdio.h"extern "C"{ #include "lua.h" #
2012-11-15 20:53:09 1423
原创 Lua与C/C++的交互4:往Lua中写入C/C++变量
在第二,三章中,我完成了用C/C++读取Lua文件。今天,我又有一个新的目标:将C/C++中变量设置到Lua文件(其实是设置到Lua全局变量表中,为了方便简单理解,我们看做是设置到Lua文件中)。以下是完整源代码:#include "stdafx.h"#include "stdio.h"extern "C"{ #include "lua.h" #include "l
2012-11-13 17:16:59 4487
原创 Lua与C/C++的交互3:C/C++中读取Lua文件中的表
在第二章中,我在vs中通过用c/c++调用跟lua交互的C API,成功读取了lua配置文件中的内容:一个全局变量。这次,我要稍微深入一点:在lua文件中定义一个表,然后用C/C++读取表中的内容。这个其实跟第二章原理是一样的,只是,这里有个细节,这个细节就是lua_getfield. 以下是完整源代码:#include "stdafx.h"#include "stdio.h"exte
2012-11-13 10:59:42 5919 1
原创 Lua与C/C++的交互2:C/C++中读取Lua文件
第一章中,我在VS中,实现了lua与C/C++的交互,了解了它们之间是通过一个虚拟的stack来进行交互的。现在我要继续往下进行,这次的目标很简单:我写一个lua脚本配置文件,然后在VS中通过调用C API,读取配置文件内容。这其实就是第一章说过的lua跟C交互的第一种形式,此时,C拥有控制权,lua只是作为一个库,我们通过C来访问lua。具体代码如下:#include "stdafx.h
2012-11-09 09:55:04 1666
原创 Lua与C/C++的交互1:C/C++与Lua最简单的互动
我想在VS中,实现C/C++与lua的交互。原理很简单,我们记住两条即可,1.lua里面的API都是用C写的。2.lua跟C/C++的交互是通过一个虚拟stack来进行数据的沟通的。在VS工程中,我们需要加入C API的头文件lua.h, luaconfig.h , lualib.h, luaxlib.h 。这几个头文件都是lua源代码,可以直接下载使用。lua.h提供原子级别的API,对栈的
2012-11-09 09:30:58 3837
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人