C++ 技术中心

   :: 首页 :: 联系 ::  :: 管理
  158 Posts :: 0 Stories :: 85 Comments :: 0 Trackbacks

公告

郑重声明:本BLOG所发表的原创文章,作者保留一切权利。必须经过作者本人同意后方可转载,并注名作者(天空)和出处(CppBlog.com)。作者Email:coder@luckcoder.com

留言簿(9)

搜索

  •  

最新随笔

最新评论

评论排行榜


1.近来想研究tolua++,正好忙里抽闲,看些文章,并做了些总结。

一.环境设置
2.下载lua5.1  并安装
3.下载tolua++/Files/API/tolua-1.0.93.tar.bz2.zip  (下载完成后,把.zip去掉)
4
.新建工程lua++(生成静态库),将tolua++解压后的tolua++-1.0.93\src\lib目录下的6个.c和.h文件。加
   到该工程中。并设置附加包含目录:
C:\Program Files (x86)\Lua\5.1\include
    并编译成功后,生成lua++.lib
5.打开tolua-1.0.93\tolua++-1.0.93\win32\vc7目录下的toluapp.sln,
  设置附加包含目录:
C:\Program Files (x86)\Lua\5.1\include 
  附加库目录:
C:\Program Files (x86)\Lua\5.1\lib
  加入附加依赖项:lua5.1.lib
  最终生成到
tolua-1.0.93\tolua++-1.0.93\bin\tolua++.exe

二.测试一(变量访问)
1.新建工程NewLua
2.Tarray.h如下:
#ifndef _TARRAY_H__
#define _TARRAY_H__

extern int g_Arr[10];


#endif/*_TARRAY_H__*/

3.编写pkg文件,内容如下:
$#include "tarray.h"
extern int g_Arr[10]@Arr;

4.输入命令:
>tolua++.exe -n tarray -o tarray.cpp tarray.pkg
 -n tarray选项指定包的名字为tarray。如果不用-n显式指定,tolua++.exe会生成一个和pkg文件名一样的包名,同时生成tolua_**_open(lua_State*)入口函数。

5.将生成的tarray.cpp加入到该工程中。并且加入lua5.1.lib,
lua++.lib
  并附加包含lua的头文件目录

6.在main文件如下:
#include "stdafx.h"
#include "lua.hpp"  
#include "tarray.h"  

int tolua_tarray_open (lua_State* tolua_S);  
int g_Arr[10]={0};  

int _tmain(int argc, _TCHAR* argv[])
{
    lua_State * L = lua_open();  
    int i=0;  
    for(i=0; i<10; i++) g_Arr[i] = i;  

    luaopen_base(L);  
    tolua_tarray_open(L);  
    luaL_dofile(L, "C:/Users/Administrator/Desktop/test/NewLua/NewLua/array.lua");  

    printf("now in c++, r