c++调用lua

来源:互联网 发布:古希腊人口知乎 编辑:程序博客网 时间:2024/06/05 19:26

VC要编译LUA文件必须先配置VC编程环境。。我用的是VC6.0,lua 5.1.4版

 

首先将lua的"lua.h"  ,"lualib.h", "lauxlib.h" 这三个放在vc程序include文件夹下

 

然后将lua的lua5.1.lib放在lib文件夹下就OK了

 

 

 

下面看看我写的一个小例子:

 

a.cpp

 

#include "windows.h"     extern "C"{   #include "lua.h"     #include "lualib.h"   #include "lauxlib.h"    }      #pragma   comment(lib,"lua5.1.lib")       lua_State * L;    static int clib(lua_State *L)   //给lua调用的c函数必须定义成static int XXX(lua_State *L)   {      char   path[MAX_PATH];       GetCurrentDirectory(MAX_PATH,path);      lua_pushstring(L,path);      return 1;   //为什么要返回1?这是有依据的,该函数把结果压入了栈,lua调用该函数将从栈中       //取1个结果   }      int main ( int argc, char *argv[] )  {      int sum;      //创建一个指向lua解释器的指针       L = luaL_newstate();      //加载lua标准库       luaL_openlibs(L);      //注册C++函数       lua_register(L,"clib",clib);      //加载脚本       luaL_dofile(L,"4.lua");      //调用函数       lua_getglobal(L,"run");      //运行函数并把结果压入栈       lua_pcall(L,0,0,0);      //关闭并释放资源       lua_close(L);      return 0;  }  


LUA文件 

function run()       print("call running from c")       print(clib())  end  


 

原创粉丝点击