VS2012 C++ 调用LUA脚本

来源:互联网 发布:无线网卡mac地址修改 编辑:程序博客网 时间:2024/05/10 16:21

1.首先安装LUA
下载Lua:http://www.lua.org/download.html
安装Lua —— 这里安装的是 Lua 5.1.4
2 VS2012 新建一个 HelloLua空项目
打开“HelloLua项目属性”——“通用配置”——”VC++目录“
修改其中的可执行文件目录,包含目录、库目录分别修改如下(添加如下文件路径):

           可执行文件目录:D:\Lua\5.1           包含目录:D:\Lua\5.1\include           库目录:D:\Lua\5.1\lib

3 使用Lua

LUA代码

function mylua()  print("mylua")  ADD(1,2)  ADD(3,4)  end  

C++调用

// TestLua.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"using namespace std;#include <iostream>#include <stdio.h>  /////////////////下面是必须要加的extern "C" {#include <lua.h>}extern "C" {  #include <lualib.h> #include <lauxlib.h>  }  #if defined (_DEBUG) #pragma comment( lib, "lua5.1.lib" ) // Lua Support #else#pragma comment( lib, "lua51.lib" ) // Lua Support #endif////不引用上面的lib会导致无法解析的外部符号错误lua_State* L;  int add(lua_State* L);  int add(lua_State* L)  {      //从L栈中取出索引为1的数值,并检查      int x = luaL_checkint(L,1);      //从L栈中取出索引为2的数值,并检查      int y = luaL_checkint(L,2);      printf("result:%d\n",x+y);      return 1;  }  int _tmain(int argc, _TCHAR* argv[])  {      //初始化全局L      L = luaL_newstate();      //打开库      luaL_openlibs(L);      //把函数压入栈中      lua_pushcfunction(L, add);      //设置全局ADD      lua_setglobal(L, "ADD");       //加载我们的lua脚本文件      if (luaL_loadfile(L,"D:\\mylua.lua"))      {          printf("error\n");      }      //安全检查      lua_pcall(L,0,0,0);      //push进lua函数      lua_getglobal(L, "mylua");       lua_pcall(L,0,0,0);      printf("hello my lua\n");      system("pause");    return 0;  }  

简单调用方法

#include <iostream>extern "C"{   #include "lua.h"   #include "lualib.h"   #include "lauxlib.h"}#if defined (_DEBUG) #pragma comment( lib, "lua5.1.lib" ) // Lua Support #else#pragma comment( lib, "lua51.lib" ) // Lua Support #endifint main(){    lua_State *L =  lua_open();    luaL_openlibs(L);    luaL_dofile(L, "learn.lua");    lua_close(L);    return 0;}
0 0
原创粉丝点击