用VC加载Lua.lib,C++调用lua脚本函数
2013-05-16 13:07
323 查看
1、先去lua.org官方网站上去下载一个win32的vc10库(vs2010),如果你是其他版本请按照实际需求下载。
2、创建一个新的 空控制台应用程序
3、复制lualib下的include所有.h文件到项目中,并且全部加入到header files和source files中。
4、新建一个main.cpp文件到source files中:加入C++代码:
5、然后再C:\\vsproject\\lua\\test\\ 目录下新建一个文件testlua.lua(也可以放在你想要放的地方),加入lua代码:
然后运行结果:
2、创建一个新的 空控制台应用程序
3、复制lualib下的include所有.h文件到项目中,并且全部加入到header files和source files中。
4、新建一个main.cpp文件到source files中:加入C++代码:
#include <stdio.h> #include <stdlib.h> #include <iostream> extern "C" { #include "lua.h" #include "lualib.h" #include "lauxlib.h" } #pragma comment (lib,"lua52.lib") void MaxMin(lua_State* L, int x, int y) { lua_getglobal(L, "MaxMin"); //参数1 lua_pushnumber(L, x); //参数2 lua_pushnumber(L, y); //2个参数,3个返回值 lua_pcall(L, 2, 3, 0); const char* c = lua_tostring(L, -3); lua_Number n1 = lua_tonumber(L, -2); lua_Number n2 = lua_tonumber(L, -1); //cout<<c<<" "<<"Max = "<<n1<<", Min = "<<n2<<endl; printf("%s Max = %f Min = %f\n", c, n1, n2); //元素出栈 lua_pop(L, 3); } void printHello(lua_State* L) { lua_getglobal(L, "printHello"); lua_pcall(L, 0, 1, 0); const char* c = lua_tostring(L, -1); printf("%s",c); //元素出栈 lua_pop(L, 1); } int main() { lua_State* L = luaL_newstate(); if(!luaL_loadfile(L, "C:\\vsproject\\lua\\test\\testlua.lua")) { if(!lua_pcall(L, 0, 0, 0)) { MaxMin(L, 1, 2); MaxMin(L, 3, 3); MaxMin(L, 9, 8); printHello(L); } } lua_close(L); system("pause"); return 0; }
5、然后再C:\\vsproject\\lua\\test\\ 目录下新建一个文件testlua.lua(也可以放在你想要放的地方),加入lua代码:
function MaxMin(x, y) if x > y then return "x > y", x, y elseif x == y then return "x = y", x, y else return "y > x", y, x end end function printHello() return "Hello, world!" end
然后运行结果:
相关文章推荐
- C++调用的LUA脚本中加载其他库的问题
- VC和LUA混合开发之VC程序调用Lua脚本函数
- C/C++调用lua脚本函数
- 用VC加载Lua.lib, 配置Lua脚本。。。。
- VC和LUA混合开发之VC程序调用Lua脚本函数
- C/C++调用lua脚本函数
- C/C++调用lua脚本函数
- VC和LUA混合开发之VC程序调用Lua脚本函数
- VC和LUA混合开发之VC程序调用Lua脚本函数
- C++ 加载dll 及调用lib 和 dll的 方法 和 动态库DLL与静态库lib的区别
- VC和LUA混合开发之VC程序调用Lua脚本函数
- VC和LUA混合开发之VC程序调用Lua脚本函数
- vs2010下C++调用lib或dll文件
- lua调用c++
- lua与C++相互调用
- Lua lib 加载分析
- VC生成的DLL给QT的EXE调用时lib路径问题小结
- C/C++中调用LUA函数(zz)
- lua与c++的相互调用
- Lua 与C/C++ 交互系列: Lua调用C/C++函数(1).