自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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关注的人

提示
确定要删除当前文章?
取消 删除