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

C++Builder使用Lua的问题

2008-01-06 16:12 316 查看
C++Builder使用Lua的问题 by sdragon 15:58 2007-1-22

Lua解压后的目录结构:

../bin/ 可执行文件目录,通常编译生成的Lua解释器和编译器将被放置到此目录下
../doc/ 文档,包含参考手册
../etc/ 其它一些Lua工具及其代码
../include/ 引用Lua需要包含的头文件
../lib/ 编译生成的lib文件通常被放到此处
../src/ 源代码,包含lib, 编译器,解释器
../test/ 测试脚本

编译库文件步骤:

一、lua.lib:

(1)新建一个"library"工程,取名"lua",去掉lua.bpf中的"#include <vcl.h>"。
(2)把"lua/src"目录下的所有c文件添加到工程:
lapi.c
lcode.c
ldebug.c
ldo.c
ldump.c
lfunc.c
lgc.c
llex.c
lmem.c
lobject.c
lopcodes.c
lparser.c
lstate.c
lstring.c
ltable.c
ltests.c
ltm.c
lundump.c
lvm.c
lzio.c

(3)设置工程属性:
ProjectOption->"Directories/Conditional"
添加"lua路径/include"、"lua路径/src"到Include Path。
设置Intermediate output为"./intermeidate"。
设置Final output为"lua路径/lib"。
(4)编译工程。

二、lualib.lib

(1)新建一个"library"工程,取名"lualib",去掉lua.bpf中的"#include <vcl.h>"。
(2)把"lua/src/lib"目录下的所有c文件添加到工程:
lauxlib.c
lbaselib.c
ldblib.c
liolib.c
lmathlib.c
ltablib.c
lstrlib.c
loadlib.c
(3)设置工程属性:
ProjectOption->"Directories/Conditional"
添加"lua路径/include"到Include Path。
设置Intermediate output为"./intermeidate"。
设置Final output为"lua路径/lib"。
(4)编译工程。

库使用问题:

库文件编译好后,新建一个普通工程,添加lua的头文件:

//因为lua的头文件都是C格式的,所以这里要加上extern "C",否则会出现编译错误。
extern "C"{
#include <lua/lua.h>
#include <lua/lauxlib.h>
#include <lua/lualib.h>
}//end extern "C"

#pragma link "lua.lib"
#pragma link "lualib.lib"

//在窗体上添加一个Memo,一个Button,试一下下面的代码,是否能够成功。

void __fastcall TForm1::Button1Click(TObject *Sender)
{
const char *buf = "var = 1100/n";
lua_State *L = lua_open();
int var = 0;
luaopen_base(L);
luaopen_io(L);
lua_dostring(L, buf);
lua_getglobal(L, "var");
var = (int)lua_tonumber(L, -1);
Memo1->Lines->Add(IntToStr(var));
lua_close(L);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: