Lua編程示例(六): C語言調(diào)用Lua函數(shù)
更新時(shí)間:2015年07月09日 10:45:41 投稿:junjie
這篇文章主要介紹了Lua編程示例(六): C語言調(diào)用Lua函數(shù),本文直接給出代碼實(shí)例,需要的朋友可以參考下
C++端:
#include "stdafx.h"
lua_State *L;
void load_lua(lua_State **L,char *filename){
*L=luaL_newstate();
luaL_openlibs(*L);
if(luaL_loadfile(*L,filename) || lua_pcall(*L,0,0,0)){
luaL_error(*L,"load file error! %s",lua_tostring(*L,-1));
}
}
int _tmain(int argc, _TCHAR* argv[])
{
load_lua(&L,"raw.lua"); //此處若直接傳入L會(huì)出錯(cuò)
lua_getglobal(L,"gettable");
if(lua_pcall(L,0,1,0) !=0){
luaL_error(L,"pcall wrong %s",lua_tostring(L,-1));
}
luaL_checktype(L,1,LUA_TTABLE);
int n=lua_objlen(L,1);
printf("n = %d\n",n);
lua_pushstring(L,"ee");
lua_rawseti(L,1,5); //t[n]=v,n為第三個(gè)參數(shù),v是棧頂元素
n=lua_objlen(L,1);
printf("n = %d\n",n);
int i;
for(i=1;i<=n;i++){
lua_rawgeti(L,1,i);
printf("%s\n",lua_tostring(L,-1));
}
return 0;
}
lua腳本:
function gettable()
tb={ "aa","bb","cc","dd"}
return tb
end
運(yùn)行輸出的結(jié)果為:
n = 4 n = 5 aa bb cc dd ee
相關(guān)文章
舉例簡(jiǎn)介L(zhǎng)ua中函數(shù)的基本用法
這篇文章主要介紹了舉例簡(jiǎn)介L(zhǎng)ua中函數(shù)的基本用法,--兩個(gè)橫線開始單行的注釋,--[[加上兩個(gè)[和]表示多行的注釋--]],需要的朋友可以參考下2015-07-07
lua讀取redis數(shù)據(jù)的null判斷示例代碼
最近在工作中遇到了一個(gè)問題,通過查找相關(guān)資料才得知原因是因?yàn)榉祷亟Y(jié)果的問題,下面這篇文章主要給大家介紹了關(guān)于lua讀取redis數(shù)據(jù)的null判斷的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2018-09-09
Lua中的協(xié)同程序之resume-yield間的數(shù)據(jù)返回研究
這篇文章主要介紹了Lua中的協(xié)同程序之resume-yield間的數(shù)據(jù)返回研究本文講解了resume的參數(shù)、resume函數(shù)的第二個(gè)返回值、yield的返回值等內(nèi)容,需要的朋友可以參考下2014-09-09
Lua協(xié)程(coroutine)程序運(yùn)行分析
這篇文章主要介紹了Lua協(xié)程(coroutine)程序運(yùn)行分析,本文講解分析了一段lua 協(xié)程代碼是如何運(yùn)行的,需要的朋友可以參考下2015-05-05
Cocos2d-x中調(diào)用Lua及HelloWorld.lua源碼分解
這篇文章主要介紹了Cocos2d-x中調(diào)用Lua及HelloWorld.lua源碼分解,本文最后總結(jié)了一些Lua的語法,需要的朋友可以參考下2014-09-09

