读书人

LUA调用C++函数的一个容易Demo

发布时间: 2013-09-09 20:31:09 作者: rapoo

LUA调用C++函数的一个简单Demo

这个Demo是帮助初学者了解LUA是如何调用C++/C的函数的.LUA调用的C++中类的函数必须是静态函数方可.

一、我的LUA文件很简单就是调用一个已经注册的C++函数如下:

extern "C"{ #include "lua.h" #include "lualib.h" #include "lauxlib.h"};/***************************************************************/int Factorial(int n){ if (n == 0) {  return 1; }  else {  return n*Factorial(n-1); }}/***************************************************************/int getValueFromCFunc(lua_State* pL){ int num = (int)lua_tonumber(pL,1); //从栈顶中取一个值   lua_pushnumber(pL,Factorial(num)); //调用Factorial函数将返回值入栈   return 1;                          //1表示返回值个数} /***************************************************************/int main(){ lua_State* pLuaState; pLuaState = luaL_newstate(); luaL_openlibs(pLuaState); lua_register(pLuaState,"getValueFromCFunc", getValueFromCFunc); if (luaL_dofile(pLuaState,"Fuc.lua") != 0) {  std::cout<<"Load Lua File Error"<<std::endl; } lua_close(pLuaState); return 0;}
本人郑重声明如下一、本文来自CDN博客,本文地址http://t.cn/z8achwq二、All Rights Reserved. 任何个人或网站转载本文时不得移除本声明.三、不得对文章进行修改,除非明确说明.同时欢迎大家评论转载和分享.

读书人网 >C++

热点推荐