Lua编程示例(六): C语言调用Lua函数

 更新时间:2015年07月09日 10:45:41   投稿:junjie  
这篇文章主要介绍了Lua编程示例(六): C语言调用Lua函数,本文直接给出代码实例,需要的朋友可以参考下

C++端:

#include "stdafx.h"

lua_State *L;
void load_lua(lua_State **L,char *filename){
 *L=luaL_newstate();
 luaL_openlibs(*L);
 if(luaL_loadfile(*L,filename) || lua_pcall(*L,0,0,0)){
 luaL_error(*L,"load file error! %s",lua_tostring(*L,-1));
 }
}
int _tmain(int argc, _TCHAR* argv[])
{
 load_lua(&L,"raw.lua"); //此处若直接传入L会出错
 lua_getglobal(L,"gettable");
 if(lua_pcall(L,0,1,0) !=0){
 luaL_error(L,"pcall wrong %s",lua_tostring(L,-1));
 }
 luaL_checktype(L,1,LUA_TTABLE);
 int n=lua_objlen(L,1);
 printf("n = %d\n",n);
 lua_pushstring(L,"ee");
 lua_rawseti(L,1,5); //t[n]=v,n为第三个参数,v是栈顶元素
 n=lua_objlen(L,1);
 printf("n = %d\n",n);
 int i;
 for(i=1;i<=n;i++){
 lua_rawgeti(L,1,i);
 printf("%s\n",lua_tostring(L,-1));
 }
 return 0;
}

lua脚本:

 

function gettable() 
  tb={ "aa","bb","cc","dd"} 
  return tb 
end 

运行输出的结果为:

n = 4 
n = 5 
aa 
bb 
cc 
dd 
ee

相关文章

  • Lua脚本自动生成APK包

    Lua脚本自动生成APK包

    这篇文章主要介绍了Lua脚本自动生成APK包,本文脚本适用于cocos2dx+lua的项目,需要的朋友可以参考下
    2015-04-04
  • C调用lua函数需要考虑的问题

    C调用lua函数需要考虑的问题

    这篇文章主要介绍了C调用lua函数需要考虑的问题,本文罗列了4条需要注意的问题,并给出了调用实例,需要的朋友可以参考下
    2015-04-04
  • lua实现的2048小游戏

    lua实现的2048小游戏

    之前给大家分享了好几个语言版本的2048了,今天再给大家分享一个lua脚本实现的2048小游戏,小伙伴们参考下吧。
    2015-03-03
  • Lua中table里内嵌table的例子

    Lua中table里内嵌table的例子

    这篇文章主要介绍了Lua中table里内嵌table的例子,本文同时讲解了如何访问内嵌table方法的例子,需要的朋友可以参考下
    2015-04-04
  • Lua源码中字符串类型的实现

    Lua源码中字符串类型的实现

    与其他主流脚本语言不同的是,Lua在实现字符串类型有两方面不同。第一,所有的字符串在Lua中都只储存一份拷贝。第二,所有的字符串变量,只保存字符串引用,而不保存它的buffer。我们来具体看看lua源码中如何实现字符串类型的吧
    2015-04-04
  • Lua中的闭合函数、非全局函数与函数的尾调用详解

    Lua中的闭合函数、非全局函数与函数的尾调用详解

    这篇文章主要介绍了Lua中的闭合函数、非全局函数与函数的尾调用详解,本文对这2种函数和尾调用做了深入研究,需要的朋友可以参考下
    2014-09-09
  • Lua 中 pairs 和 ipairs 的区别

    Lua 中 pairs 和 ipairs 的区别

    这篇文章主要介绍了Lua 中 pairs 和 ipairs 的区别,本文用官方文档和代码实例总结了它的们的区别,需要的朋友可以参考下
    2014-09-09
  • Lua教程(七):数据结构详解

    Lua教程(七):数据结构详解

    这篇文章主要介绍了Lua教程(七):数据结构详解,本文讲解了数组、二维数组、链表、队列与双向队列、 集合和包(Bag)、StringBuilder等内容,需要的朋友可以参考下
    2015-04-04
  • lua日志文件处理代码

    lua日志文件处理代码

    本文给大家分享的是使用lua编写的日志文件的处理代码,非常的简单实用,有需要的小伙伴可以参考下。
    2015-09-09
  • Lua模块和模块载入浅析

    Lua模块和模块载入浅析

    这篇文章主要介绍了Lua模块和模块载入浅析,Lua模块其实就是以.lua结尾的文件,模块载入可以用requeire或者dofile,需要的朋友可以参考下
    2014-09-09

最新评论