lua和luabind编译测试使用

来源:互联网 发布:单片机12864程序解析 编辑:程序博客网 时间:2024/04/30 23:28
1 下载lua-5.1.4.tar.gz和luabind-0.9.1.zip
2 解压后,新建vs工程lualib luabindlib
生成静态库 生成对应lib
 luabind需要编译boost库


2 测试工程test
包含目录
E:\library/boost_1_55_0;../lua-5.1.4\src;../luabind-0.9.1
包含的lib
luabindlib.lib;lualib.lib
lib路径
../lualib/$(PlatformTarget)/$(Configuration)/;../luabindlib/$(PlatformTarget)/$(Configuration)/




#include "stdio.h"


extern "C"{
#include "lua.h"
#include "lualib.h"
#include "lauxlib.h"


}


#include "luabind/luabind.hpp"


class CUser
{
public:
static CUser& Instance(){
if(instance_==NULL)
{
instance_ = new CUser;
}
return *instance_;
}
int id;
public:
static CUser* instance_;
};


CUser* CUser::instance_ = NULL;


CUser& GetUserInstance()
{
return CUser::Instance();
}


extern "C" int init(lua_State* L){
using namespace luabind;
open(L);
module(L)
[
def("GetUserInstance",&GetUserInstance)
];
return 0;


}


int main()
{
using namespace luabind;
lua_State* L = lua_open();
luaopen_base(L);
luaopen_table(L);
luaL_openlibs(L);
luaopen_string(L);
luaopen_math(L);
init(L);
int ret = luaL_dofile(L,"D:\\GNU_source\\lua\\luabindTest\\x64\\Debug\\test.lua");
if(ret)
{
lua_close(L);
return -1;
}
ret= luabind::call_function<int>(L,"addFunc",2,3);
luabind::call_function<void>(L,"callUser");
lua_close(L);
return 0;
}
0 0
原创粉丝点击