在Lua中调用C++函数

来源:互联网 发布:β随机 矩阵 编辑:程序博客网 时间:2024/05/17 03:13
#include <stdio.h>extern "C"{#include "lua.h"#include "lualib.h"#include "lauxlib.h"}#pragma comment(lib,"E:\\luaSRC\\lua5.1\\lib\\static\\lua5.1.lib")/*avg.lua文件内容avg, sum = average(10, 20, 30, 40, 50,"n")print("The average is ", avg)print("The sum is ", sum)*//* 指向Lua解释器的指针 */lua_State* L;static int average(lua_State *L){/* 得到参数个数 */int n = lua_gettop(L);double sum = 0;int i;/* 循环求参数之和 */for (i = 1; i <= n; i++){if (!lua_isnumber(L, i)){lua_pushstring(L, "Incorrect argument to 'average'");lua_error(L);}/* 求和 */sum += lua_tonumber(L, i);}/* 压入平均值 */lua_pushnumber(L, sum / n);/* 压入和 */lua_pushnumber(L, sum);/* 返回返回值的个数 */return 2;}int main ( int argc, char *argv[] ){/* 初始化Lua */L = lua_open();/* 载入Lua基本库 */luaL_openlibs(L);/* 注册函数 */lua_register(L, "average", average);/* 运行脚本 */luaL_dofile(L, "avg.lua");/* 清除Lua */lua_close(L);/* 暂停 */printf( "Press enter to exit…" );getchar();return 0;}

0 0
原创粉丝点击