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
- VS2012 C++ 调用LUA脚本
- VS2012建立调用lua脚本工程
- c调用lua脚本
- C语言调用Lua脚本
- C语言调用Lua脚本
- Lua 脚本调用 C 函数
- Lua 脚本调用 C 函数
- Lua脚本:Lua调用C实现方法
- Lua脚本:C调用Lua实现方法
- Lua脚本调用C函数小结
- C调用lua脚本的效率测试
- C调用lua脚本的效率测试
- C/C++调用lua脚本函数
- C调用lua脚本的效率测试
- C/C++调用lua脚本函数
- 详解C调用lua脚本效率测试
- C调用lua脚本效率测试
- C/C++调用lua脚本函数
- Hue安装配置实践
- 区间段是否存在重叠值
- Ubuntu没有网络连接图标
- Js~对数组的操作
- JS排序 localeCompare() 兼容性问题
- VS2012 C++ 调用LUA脚本
- Electron开发入门(二):创建项目Hello Word
- Eclipse上传项目到Git
- 个人随笔对.net cookie session cache的浅谈
- 设计模式
- 自我成长之模板方法模式
- hibernate
- EasyPlayer实现视频播放局部缩放、广角平移功能(类似水滴直播,快手视频)
- java一维数组和二维数组的定义及其初始化