您的位置:首页 > 编程语言 > Lua

C++调用Lua编程环境搭建及测试代码示例

2012-06-20 14:58 615 查看
测试环境是VS2005+LuaForWindows_v5.1.4-45.exe+WIN7

1.安装lua开发环境LuaForWindows_v5.1.4-45.exe

2.启动VS2005,选择C++下的"win32"项目类型中的"Win2控制台应用程序"

3.工具——选项——项目和解决方案——VC++目录——可执行程序(C:\Program Files\Lua\5.1);包含文件(C:\Program Files\Lua\5.1\include);库文件(C:\Program Files\Lua\5.1\lib);项目——'项目名'属性 子菜单——配置属性——链接器——输入——附加依赖项(lua51.lib lua5.1.lib)

第3部的详细配置可参照百度文库中的这篇文档:

VS上Lua编程环境搭建
http://wenku.baidu.com/view/7912da3667ec102de2bd8957.html
4.之后在 “项目名.cpp”文件中编程如下:

// CYLua.cpp : 定义控制台应用程序的入口点。

//

#include "stdafx.h"

// 这是个C++程序, 所以要extern "C",

// 因为lua的头文件都是C格式的

extern "C" {

#include "lua.h"

#include "lualib.h"

#include "lauxlib.h"

}

/* the Lua interpreter */

lua_State* L;

int luaadd ( int x, int y )

{

int sum;

/* the function name */

lua_getglobal(L, "add");

/* the first argument */

lua_pushnumber(L, x);

/* the second argument */

lua_pushnumber(L, y);

/* call the function with 2

arguments, return 1 result */

//说明调用的函数是带有2个参数和1个返回值

lua_call(L, 2, 1);

/* get the result */

sum = (int)lua_tonumber(L, -1);

lua_pop(L, 1);

return sum;

}

int _tmain(int argc, _TCHAR* argv[])

{

int sum;

/* initialize Lua */

L = lua_open();

luaopen_base(L);

/* load Lua base libraries */

luaL_openlibs(L);

/* load the script */

/*Lua01.lua是这个C++程序调用的Lua文件,注意luaL_dofile()函数的第二个参数要写绝对路径,否则执行后会提示“unprotected error in call to lua api(attampt to call a nil value)”错误 */

luaL_dofile(L, "D:\\LuaTestDoc\\Lua01.lua");

/* call the add function */

sum = luaadd( 10, 15 );

/* print the result */

printf( "The sum is %d", sum );

/* cleanup Lua */

lua_close(L);

return 0;

}

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

打开SciTE的Lua集成开发环境,编辑Lua01.lua文件如下(本程序是把此文件放在了D:\LuaTestDoc\路径下,故当加载并编译此Lua文件时这样写:luaL_dofile(L, "D:\\LuaTestDoc\\Lua01.lua");):

function add(x,y)

return x+y

end

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

最后:ctrl+F5编译运行代码:运行结果会是:The sum is 25.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: