<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    ivaneeo's blog

    自由的力量,自由的生活。

      BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
      669 Posts :: 0 Stories :: 64 Comments :: 0 Trackbacks

    Cocos2d-x 已經提供了對 Lua 的基本支持,但除了 Lua 的基本庫外,并沒有捆綁一些常用庫,例如 LuaSocket。

    經過一番嘗試,終于搞定了此問題 :)

    獲得 LuaSocket 源代碼后,在 cocos2d-x 項目的 libs/lua 目錄中建立子目錄 exts/luasocket,并將 luasocket-2.0.2/src 目錄中所有的 *.c/*.h 文件拷貝到 libs/lua/exts/luasocket 目錄中。

    在 libs/lua/exts 目錄中建立文件:

    lualoadexts.h

    #ifndef __LUALOADEXTS_H_ #define __LUALOADEXTS_H_  #include "lauxlib.h"  void luax_initpreload(lua_State *L);  #endif // __LUALOADEXTS_H_ 

    lualoadexts.c

    #include "lualoadexts.h"  // luasocket #include "luasocket.h" #include "mime.h"  static luaL_Reg luax_preload_list[] = {     {"socket.core", luaopen_socket_core},     {"mime.core", luaopen_mime_core},     {NULL, NULL} };  void luax_initpreload(lua_State *L) {     luaL_Reg* lib = luax_preload_list;     luaL_findtable(L, LUA_GLOBALSINDEX, "package.preload",                    sizeof(luax_preload_list)/sizeof(luax_preload_list[0])-1);     for (; lib->func; lib++) {         lua_pushstring(L, lib->name);         lua_pushcfunction(L, lib->func);         lua_rawset(L, -3);     }     lua_pop(L, 1); } 

    最后,打開 libs/lua/cocos2dx_support/LuaEngineImpl.cpp 文件,在 CCLuaScriptModule::CCLuaScriptModule() 構造函數最后載入 Lua 標準庫和擴展庫的代碼:

    CCLuaScriptModule::CCLuaScriptModule() {     d_ownsState = true;     d_state = lua_open();     luaL_openlibs(d_state);     int nOpen = tolua_Cocos2d_open(d_state);     CC_UNUSED_PARAM(nOpen);     nOpen = tolua_SimpleAudioEngine_open(d_state);     CC_UNUSED_PARAM(nOpen);      // init standard libraries     luaL_openlibs(d_state);     // init more libraries     luax_initpreload(d_state); } 

    LuaScoket 除了 C 代碼,還有一部分是 Lua 代碼,所以需要將 luasocket-2.0.2/src/*.lua 復制到項目中,然后用下列 Lua 代碼進行測試:

    local socket = require("socket") print("socket module:", socket) print("socket.connect function:", socket.connect) print("socket.bind function:", socket.bind)  print("\n") print("io module:", io) 
    posted on 2012-02-08 00:03 ivaneeo 閱讀(4051) 評論(0)  編輯  收藏 所屬分類: lua-擼語言
    主站蜘蛛池模板: 亚洲精品中文字幕无码A片老| 亚洲国产日韩在线人成下载| 无码人妻久久一区二区三区免费| 亚洲成av人影院| 很黄很黄的网站免费的| 看免费毛片天天看| 亚洲成在人天堂在线| 在线观看人成网站深夜免费| 中文字幕免费视频精品一| 亚洲三级在线视频| 亚洲日韩欧洲无码av夜夜摸| 91免费资源网站入口| 男女一边摸一边做爽的免费视频| 亚洲成人高清在线观看| 久久久久久久亚洲精品| 国产人在线成免费视频| 成人国产精品免费视频| 亚洲伊人久久大香线蕉AV| 亚洲av无码国产精品夜色午夜| 少妇高潮太爽了在线观看免费| 中文字幕免费在线看电影大全 | 久久丫精品国产亚洲av不卡 | 亚洲va久久久噜噜噜久久男同| 高清国语自产拍免费视频国产| 日韩免费视频一区二区| 国产亚洲精品美女久久久久| 亚洲无限乱码一二三四区| 美腿丝袜亚洲综合| 日韩免费观看的一级毛片| 又大又硬又爽又粗又快的视频免费| 一区二区三区免费看| 亚洲AV无码片一区二区三区| 亚洲欧洲精品一区二区三区| 亚洲人成影院在线无码按摩店| 国产精品美女自在线观看免费| 国产在线观看片a免费观看| 1000部啪啪毛片免费看| 国产成人免费ā片在线观看老同学| 成人免费观看男女羞羞视频| 亚洲综合激情五月丁香六月| 亚洲国产人成在线观看|