91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 1KB
    文件類型: .zip
    金幣: 2
    下載: 1 次
    發布日期: 2024-01-10
  • 語言: 其他
  • 標簽: lua??

資源簡介

現在最新版本lua,lua-5.2.3。

資源截圖

代碼片段和文件信息

/************************************************************************/
/*?C/C++調用lua函數*/
/*?url?=?http://blog.csdn.net/pizi0475/article/details/5398497?*/
/************************************************************************/
#include?
#include?
#include?
#include?

extern?“C“
{
#include?“lua.h“
#include?“lualib.h“
#include?“lauxlib.h“
};

using?namespace?std;
/************************************************************************/
//函數功能:調用lua函數
//函數參數:
// L?lua虛擬機
// x?
// y
//函數返回:
// sum
//核心函數?lua_call()
/*
調用一個函數。

要調用一個函數請遵循以下協議:?首先,要調用的函數應該被壓入堆棧;?接著,把需要傳遞給這個函數的參數按正序壓棧;?
這是指第一個參數首先壓棧。?最后調用一下?lua_call;?nargs?是你壓入堆棧的參數個數。?當函數調用完畢后,所有的參數以及函數本身都會出棧。
而函數的返回值這時則被壓入堆棧。?返回值的個數將被調整為?nresults?個,?除非?nresults?被設置成?LUA_MULTRET。
在這種情況下,所有的返回值都被壓入堆棧中。?Lua?會保證返回值都放入棧空間中。
函數返回值將按正序壓棧(第一個返回值首先壓棧),?因此在調用結束后,最后一個返回值將被放在棧頂。
被調用函數內發生的錯誤將(通過?longjmp)一直上拋。
*/
/************************************************************************/


int?luaadd(lua_State?*L?int?x?int?y)
{
int?sum;
/*通過名字獲取Lua函數*/
lua_getglobal(L“add“);
/*向棧中壓入第一個參數*/
lua_pushnumber(Lx);
/*向棧中壓入第二個參數*/
lua_pushnumber(Ly);
/*調用函數*/
lua_call(L21);
/*得到結果
把給定索引處的?Lua?值轉換為?lua_Integer?這樣一個有符號整數類型。?
這個?Lua?值必須是一個數字或是一個可以轉換為數字的字符串否則,lua_tointeger?返回?0?。*/
sum?=?(int)lua_tointeger(L-1);
/*從堆棧中彈出?n?個元素*/
//n
lua_pop(L1);
return?sum;
}

int?main()
{
int?sum;
/*初始化lua虛擬機*/
lua_State?*L?=?luaL_newstate();
/*載入lua基本庫*/
luaL_openlibs(L);
/*載入腳本*/
luaL_dofile(L“./script/test.lua“);
/*調用lua函數*/
sum?=?luaadd(L1015);
/*顯示結果*/
cout<<“The?sum?=?“< /*清除lua虛擬機*/
lua_close(L);
/*顯示結果并暫停*/
cout<<“Press?enter?to?exit…“< getchar();
return?0;
}

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????2219??2014-08-27?09:06??main.cpp
?????目錄???????????0??2014-08-26?16:11??script\
?????文件??????????38??2014-08-26?16:11??script\test.lua

評論

共有 條評論