使用luabind生成dll文件

来源:互联网 发布:sql实例教程 编辑:程序博客网 时间:2024/05/08 12:53

(前提条件:

1.配置好lua环境,详见我的文章:Lua开发环境配置

2.配置好boost库,详见我的文章:VS2012编译boost库

3.编译好luabind,详见我的文章:VS2012编译luabind)

 

 

1.新建一个控制台DLL工程,名字是luabind_test

 

 

 

 

2.VS项目环境配置

lua环境目录

boost环境目录

luabind环境目录

我的项目设置:

 

 

 

 

 

 

 

3.在项目中新建luabind_test.cpp文件。

luabind_test.cpp文件内容

 

#include <iostream>
#include <luabind/luabind.hpp>
#include <luabind/lua_include.hpp>

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

void greet()
{
    std::cout << "hello world!/n";
}

extern "C" int luaopen_luabind_test(lua_State* L)
{
    using namespace luabind;

    open(L);

    module(L)
        [
            def("greet", &greet)
        ];

    return 0;
}

 

我在编译的过程中遇到各种的问题,卡了我不少的时间。弄得我自己都快要放弃了,不过最后还是成功了。在某一步过程中出错了就会造成后面的步骤都会出错,请确保之前的每一步都是成功的。

 

4.编译项目

如果成功编译了会生成一个dll文件luabind_test.dll,会看到:


把生成的luabind_test.dll放到lua配置环境下面。我的环境是:

 

 

5.验证是否能够使用C++中的函数。

方法1:

双击运行lua.exe


自己手动打入:

require "luabind_test"

greet()

方法2

打开SciTE,在配置lua环境的时候就会有这么一个编辑器。


先随便新建一个lua文件。记得先保存再运行,不然不能运行

 

 

 

运行lua文件。结果如下:

 

 


说明:上面我只是简单的使用了C++中的函数,还有另外的把C++中的类绑定函数到Lua,重载函数...另外的详见我转载的文章:《LuaBind--最强大的Lua C++Bind》

 

 

 


0 0
原创粉丝点击