青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

隨筆 - 132  文章 - 51  trackbacks - 0
<2025年11月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

常用鏈接

留言簿(7)

隨筆分類

隨筆檔案

文章分類

文章檔案

cocos2d-x

OGRE

OPenGL

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

    想在我的項目中使用Lua腳本語言。最初知道Lua是通過CEGUI,后來因為一些原因不打算使用CEGUI了,只好單獨使用Lua。在網上看到LuaPlus,貌似比較簡單。在此記錄學習過程。
    可以到這里http://luaplus.org/tiki-index.php?page=LuaPlus+Home+Page下載LuaPlus的win32二進制文件和源碼包。從源碼包提取頭文件,從二進制包提取DLL文件。
    LuaPlus對Lua做了修改和封裝,使得Lua和C++的交互更為簡單。可以從上面的鏈接找到它的介紹。

    先簡單的做兩個測試:(1)從C++中調用Lua腳本中的函數;(2)從Lua腳本中調用C++里的函數。

    一、工程配置

    VC7.1中新建win32控制臺工程TestLuaPlusLib。

    解決方案視圖中右鍵點擊TestLuaPlusLib,選屬性;配置組合框選“所有配置”;依次點擊“配置屬性”、“C/C++”、“常規”,在附加包含目錄里添加源碼解壓后所在的路徑(我的:E:/sources/LuaPlus/LuaPlus51_Build1100/Src/LuaPlus);依次點擊“連接器”、“常規”,在附加庫目錄中添加二進制包解壓后所在的路徑(我的:E:/sources/LuaPlus/LuaPlus51_Build1100_Win32/Lib/win32)。

    在TestLuaPlusLib.cpp中加入如下幾行代碼,將頭文件和庫文件加入進來。

    #include "luaplus.h"
    
#if defined(DEBUG) || defined(_DEBUG)
    
#pragma comment(lib, "LuaPlusD_1100.lib")
    
#else
    
#pragma comment(lib, "LuaPlus_1100.lib")
    
#endif
    
using namespace LuaPlus;

    工程配置基本上完成了。
    

   二、測試用Lua腳本

    如下建立測試用的Lua腳本并保存在你即將生成的可執行文件所在的目錄下。同時需要把二進制包中的LuaPlusD_1100.dll和LuaPlus_1100.dll拷貝到該目錄下。
    health = 100;

    PrintNumber(
30);
 
    function Add(x, y)
        
return x + y;
    end

    health = 100;Lua腳本中的全局變量,可以被C++文件訪問。
    PrintNumber(30);該語句調用C++文件中的函數,打印數字到控制臺窗口。
    function Add(x,y)聲明一個函數,C++文件會找到并調用此函數。

    三、C++實現

    在TestLuaPlusLib.cpp中加入下面兩個函數。
static int PrintLSNumber(LuaState* state)
{
    LuaStack args(state);

    
// Verify it is a number and print it.
    if (args[1].IsNumber()) {
        printf(
"%f ", args[1].GetNumber());
    }

    
// No return values.
    return 0;
}



void test() 
{
    
//Create state
    LuaStateOwner state;

    
//With this the script can access our own C++ functions:
    state->GetGlobals().Register("PrintNumber", PrintLSNumber);

    
//Open test file:
    int iret = state->DoFile("test.lua");

     
//Get a global variable:
    LuaObject sObj = state->GetGlobal("health");
    
int mytest = sObj.GetInteger();
    printf(
"init value in luascript:%d ", mytest);

    
//Update the value:
    sObj.AssignInteger(state, 50);
    
//Get value again:
    mytest = sObj.GetInteger();
    printf(
"after changed by c++:%d ", mytest);

    
//Call a function in lua:
    LuaFunction<int> Add =  state->GetGlobal("Add");
    
int myret = Add(34);
    printf(
"Call add() in luascript,ret=%d ", myret);

}


    main函數:
int _tmain(int argc, _TCHAR* argv[])
{
    test();
    
return 0;
}
 
    現在可以編譯了,編譯完成之后運行,可以在控制臺窗口中看到結果。
    需要注意的是執行腳本要在注冊C++函數到Lua模塊之后進行。
    基本上是按照http://gpwiki.org/index.php/Scripting_with_LuaPlus_and_Cpp來做的,加入了工程設置部分。該鏈接的代碼(test函數)會報錯(調用了math庫中的cos函數,但是沒有調用OpenLibs()函數),我修改了一下,去掉了對math庫的引用。

   相關資源鏈接:

    1>LuaPlus的文檔:http://www.gamedev.net/reference/programming/features/lua/
    2>LuaPlus初級教程:http://wwhiz.com/LuaPlus/LuaPlus.html
posted on 2011-07-18 10:07 風輕云淡 閱讀(833) 評論(0)  編輯 收藏 引用 所屬分類: LuaPlus
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲一区二区毛片| 亚洲免费电影在线| 久久爱www久久做| 久久久久综合| 亚洲国产专区| 欧美日韩免费高清| 亚洲欧美国产77777| 久久久久一区二区| 黄网动漫久久久| 欧美成人性网| 亚洲深夜激情| 久久综合网络一区二区| 最新日韩中文字幕| 欧美视频在线免费| 久久久久久一区二区| 亚洲黄色在线观看| 欧美一级艳片视频免费观看| 狠狠久久亚洲欧美专区| 欧美精品一区二区三区很污很色的 | 老巨人导航500精品| 亚洲人午夜精品| 国产精品人人做人人爽人人添| 欧美一级视频一区二区| 亚洲国产精品一区二区第一页| 校园春色国产精品| 亚洲日本va午夜在线电影| 欧美乱大交xxxxx| 欧美一区二区三区免费大片| 亚洲第一主播视频| 久久黄金**| 在线亚洲电影| 在线日韩欧美| 国产伦精品一区二区| 欧美精品播放| 久久久av水蜜桃| 在线视频日韩| 亚洲区国产区| 免费不卡在线观看av| 亚洲欧美激情一区二区| 91久久综合亚洲鲁鲁五月天| 国产视频久久| 国产精品福利在线观看| 欧美成人国产一区二区| 久久精品免费播放| 亚洲欧美清纯在线制服| 亚洲精品系列| 亚洲国产91| 玖玖玖免费嫩草在线影院一区| 亚洲欧美日本在线| 日韩视频免费看| 亚洲风情亚aⅴ在线发布| 国产亚洲综合精品| 国产精品资源| 国产精品久久久999| 欧美日韩另类一区| 欧美日本韩国一区| 欧美精品电影| 欧美成人免费大片| 欧美成人激情视频| 免费成人网www| 久久综合网hezyo| 久久躁狠狠躁夜夜爽| 久久精品亚洲精品国产欧美kt∨| 午夜精品一区二区三区在线播放| 亚洲深夜福利视频| 亚洲午夜一区二区| 亚洲无限av看| 亚洲午夜激情免费视频| 亚洲一区日韩| 亚洲欧美在线看| 午夜精品福利电影| 欧美专区在线观看| 久久精品视频播放| 久久手机免费观看| 免费在线成人| 欧美大成色www永久网站婷| 欧美国产日韩在线| 欧美日韩在线直播| 国产精品视频久久| 国产午夜精品久久久久久免费视| 国产一区二区三区免费在线观看| 国产又爽又黄的激情精品视频 | 国内精品久久国产| 韩国女主播一区二区三区| 国内精品久久久久久久影视蜜臀 | 欧美日韩一区二区免费在线观看| 欧美日韩理论| 国产精品蜜臀在线观看| 国产欧美一区二区三区沐欲| 国产视频在线观看一区| 尤物yw午夜国产精品视频明星| 在线播放中文一区| 亚洲人成艺术| 亚洲伊人伊色伊影伊综合网 | 亚洲视频一二| 午夜视频久久久久久| 久久精品一区二区国产| 美女视频黄a大片欧美| 欧美日韩精品一区二区| 国产精品嫩草99a| 狠狠色综合色区| 99视频国产精品免费观看| 亚洲一区二区三区高清| 久久久久99| 亚洲激情社区| 午夜精品福利一区二区蜜股av| 久久婷婷人人澡人人喊人人爽| 欧美精品一区二区高清在线观看| 国产精品日韩欧美综合 | 精品二区久久| 日韩视频精品在线| 久久xxxx精品视频| 欧美激情一区二区三区全黄| 一本色道久久综合精品竹菊| 久久成人精品视频| 欧美日韩精品一区视频| 狠狠干成人综合网| 中文av字幕一区| 久久这里有精品15一区二区三区| 亚洲精品乱码久久久久久蜜桃麻豆 | 国产伦精品一区| 亚洲国产日韩欧美综合久久| 在线视频精品| 老司机精品视频一区二区三区| 91久久国产综合久久91精品网站| 午夜视频在线观看一区| 欧美日本一区二区三区| 极品少妇一区二区三区| 亚洲一区二区少妇| 美国成人直播| 亚洲免费在线电影| 欧美日韩国产成人精品| 尤物yw午夜国产精品视频| 欧美一区二区在线免费观看| 99pao成人国产永久免费视频| 久久九九国产精品| 国产婷婷精品| 午夜精品视频在线| 99riav久久精品riav| 欧美国产丝袜视频| 在线日韩一区二区| 久久久久久自在自线| 午夜国产精品影院在线观看| 欧美日韩美女一区二区| 亚洲精品偷拍| 欧美黄色一级视频| 久久精品女人| 极品少妇一区二区| 久久久久久久激情视频| 午夜亚洲激情| 国产乱子伦一区二区三区国色天香| 亚洲素人在线| 日韩一级二级三级| 欧美日韩不卡一区| 一区二区三区高清不卡| 亚洲激情一区二区| 欧美激情二区三区| 亚洲免费观看| 亚洲精选国产| 欧美日韩国产精品专区| 9国产精品视频| 日韩视频中文字幕| 欧美日韩免费在线观看| 亚洲图片欧美一区| 中日韩男男gay无套| 国产精品久久一卡二卡| 午夜精品久久久久久久蜜桃app | 久久精品99国产精品酒店日本| 国产精品区一区| 亚洲欧美国产va在线影院| 一区二区三区高清视频在线观看 | 国产精品久久久免费| 亚洲欧美999| 午夜精品成人在线| 韩国一区二区三区美女美女秀| 久久综合色播五月| 免费欧美网站| 99re8这里有精品热视频免费 | 9人人澡人人爽人人精品| 欧美伦理91| 亚洲在线视频| 欧美一级免费视频| 伊人久久久大香线蕉综合直播| 欧美激情第10页| 欧美日韩免费高清| 欧美一区二区久久久| 久久久欧美精品| 9久re热视频在线精品| 亚洲一级影院| 亚洲成人在线| 亚洲美女精品久久| 国产欧美精品在线观看| 久久免费高清视频| 欧美成人午夜视频| 午夜国产欧美理论在线播放| 久久久久久亚洲精品中文字幕| 亚洲美女在线看| 亚洲一区二区在| 亚洲高清av在线| 一区二区黄色|