使用luabind生成dll文件
2015-12-09 16:13
411 查看
(前提条件:
1.配置好lua环境,详见我的文章:Lua开发环境配置
2.配置好boost库,详见我的文章:VS2012编译boost库
3.编译好luabind,详见我的文章:VS2012编译luabind)
1.新建一个控制台DLL工程,
名字是luabind_test
![](http://img.blog.csdn.net/20151209160353954?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](http://img.blog.csdn.net/20151209160419427?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
2.VS项目环境配置
lua环境目录
boost环境目录
luabind环境目录
我的项目设置:
![](http://img.blog.csdn.net/20151209160446760?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](http://img.blog.csdn.net/20151209160500356?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](http://img.blog.csdn.net/20151209160517481?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
3.在项目中新建luabind_test.cpp文件。
luabind_test.cpp文件内容
我在编译的过程中遇到各种的问题,卡了我不少的时间。弄得我自己都快要放弃了,不过最后还是成功了。在某一步过程中出错了就会造成后面的步骤都会出错,请确保之前的每一步都是成功的。
4.编译项目
如果成功编译了会生成一个dll文件luabind_test.dll,会看到:
![](http://img.blog.csdn.net/20151209160620171?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
把生成的luabind_test.dll放到lua配置环境下面。我的环境是:
![](http://img.blog.csdn.net/20151209160641780?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
5.验证是否能够使用C++中的函数。
方法1:
双击运行lua.exe
![](http://img.blog.csdn.net/20151209160706846?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
自己手动打入:
require "luabind_test"
greet()
方法2:
打开SciTE,在配置lua环境的时候就会有这么一个编辑器。
![](http://img.blog.csdn.net/20151209160731870?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
先随便新建一个lua文件。记得先保存再运行,不然不能运行
![](http://img.blog.csdn.net/20151209160923430?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
运行lua文件。结果如下:
![](http://img.blog.csdn.net/20151209160943125?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
说明:上面我只是简单的使用了C++中的函数,还有另外的把C++中的类绑定函数到Lua,重载函数...另外的详见我转载的文章:《LuaBind--最强大的Lua
C++Bind》
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》
相关文章推荐
- iOS使用lua语言的使用步骤与实现插件的动态更新
- Assembly x64 Intro - Horner Polynomial Evaluation
- lua之读写plist文件
- lua 5.2 GC 源码分析 二
- VS2012编译luabind
- Lua源码分析——C文件说明
- Introduction to Recommender System 之 Module 5 Evaluation
- Lua与VC的交互
- 关于c调用lua 对‘luaL_newstate()’未定义的引用的问题解决办法
- 【Codeforces Round 276 (Div 2)B】【水题】Valuable Resources 最小正方形包含所有点
- Lua 初识之 loadfile、require、module - 十五
- lua交互API函数入门系列-堆栈[1]
- lua字符串的分割函数
- Lua 初识之面向对象 - 十四
- Lua转让C功能
- VS下LUA编程环境搭建
- Lua Mac&Windows开发环境组建及部分语法例子
- Lua初识之表的构造-六
- Evaluate Reverse Polish Notation
- lua学习04——环境&模块