2013-07-28 28 views
2

我正在嘗試使用tolua ++庫來將Lua腳本嵌入到我的C++應用程序中。對我來說很清楚,如何將C++類綁定到Lua,通過Lua腳本和調用方法創建它們。但是,我不能真正瞭解如何從C++調用Lua腳本函數(通過傳遞參數並獲取返回值)。tolua ++從C++代碼中調用Lua函數

你可以說使用tolua ++做這個的標準方法嗎?是否tolua ++覆蓋,或者我必須使用Lua C Api?

回答

0

你應該使用CAPI,它是這樣的:

在Lua

function showValue(strFirstName, strLastName) 
    strName = strFirstName .. "." .. strLastName 
    print(strName) 
    return strName, "is", 18 
end 

在C++:

lua_getglobal(L, "showValue"); 
    lua_pushstring(L, "William"); 
    lua_pushstring(L, "Hsueh"); 

    lua_pcall(L, 2, 3, 0); 

    // get return values 
    int nOld = lua_tonumber(L, -1); 
    const char *pIs = lua_tostring(L, -2); 
    const char *pName = lua_tostring(L, -3); 

你可以檢查在整個例如:http://blog.deskangel.com/?p=459

鏈接的帖子是中文,但代碼說明了一切。

+0

我不認爲這是解決方案。 – einverne

+0

@einverne,那麼,您的解決方案是什麼? – WilliamX