c/c++ 调用lua

来源:互联网 发布:如何寻找淘宝厂家 编辑:程序博客网 时间:2024/05/17 08:25

http://blog.csdn.net/codebob/article/details/17842129

我们先随便写一个lua脚本

[java] view plaincopyprint?在CODE上查看代码片派生到我的代码片
  1. --加法  
  2. function add(x,y)  
  3.     return y+x  
  4. end  

然后我们在c、c++面这样调用

[java] view plaincopyprint?在CODE上查看代码片派生到我的代码片
  1. int main()  
  2. {  
  3.     lua_State *L=luaL_newstate();  
  4.     luaL_openlibs(L);  
  5.     luaL_dofile(L,"test.lua");  
  6.   
  7.     /*压入函数和参数*/  
  8.     lua_getglobal(L,"add");//待调用的函数  
  9.     lua_pushnumber(L,23);//压入第一个参数  
  10.     lua_pushnumber(L,12);//压入第二个参数  
  11.     /*完成调用* 2 个参数1 个返回结果 错误码为0*/  
  12.     if (lua_pcall(L,2,1,0)!=0//函数调用  
  13.     {  
  14.         printf("error %s\n",lua_tostring(L,-1));          
  15.     }  
  16.     if(!lua_isnumber(L,-1))  
  17.         printf("fucntion must return a number\n");  
  18.     printf("%f      \n",lua_tonumber(L,-1));//取出返回值  
  19.     lua_pop(L,1);//弹出返回值  
  20.     lua_close(L);  
  21.     return 0 ;  
  22. }  
0 0
原创粉丝点击