资源简介
VS2013 Lua解决方案,包含lualib项目与Test项目。已编译出C、C++,win32、x64版本的静态库,请阅读README.txt。
代码片段和文件信息
/*
** $Id: lapi.cv 2.244 2014/12/26 14:43:45 roberto Exp $
** Lua API
** See Copyright Notice in lua.h
*/
#define lapi_c
#define LUA_CORE
#include “lprefix.h“
#include
#include
#include “lua.h“
#include “lapi.h“
#include “ldebug.h“
#include “ldo.h“
#include “lfunc.h“
#include “lgc.h“
#include “lmem.h“
#include “lobject.h“
#include “lstate.h“
#include “lstring.h“
#include “ltable.h“
#include “ltm.h“
#include “lundump.h“
#include “lvm.h“
const char lua_ident[] =
“$LuaVersion: “ LUA_COPYRIGHT “ $“
“$LuaAuthors: “ LUA_AUTHORS “ $“;
/* value at a non-valid index */
#define NONVALIDVALUE cast(TValue * luaO_nilobject)
/* corresponding test */
#define isvalid(o) ((o) != luaO_nilobject)
/* test for pseudo index */
#define ispseudo(i) ((i) <= LUA_REGISTRYINDEX)
/* test for upvalue */
#define isupvalue(i) ((i) < LUA_REGISTRYINDEX)
/* test for valid but not pseudo index */
#define isstackindex(i o) (isvalid(o) && !ispseudo(i))
#define api_checkvalidindex(o) api_check(isvalid(o) “invalid index“)
#define api_checkstackindex(i o) \
api_check(isstackindex(i o) “index not in the stack“)
static TValue *index2addr (lua_State *L int idx) {
CallInfo *ci = L->ci;
if (idx > 0) {
TValue *o = ci->func + idx;
api_check(idx <= ci->top - (ci->func + 1) “unacceptable index“);
if (o >= L->top) return NONVALIDVALUE;
else return o;
}
else if (!ispseudo(idx)) { /* negative index */
api_check(idx != 0 && -idx <= L->top - (ci->func + 1) “invalid index“);
return L->top + idx;
}
else if (idx == LUA_REGISTRYINDEX)
return &G(L)->l_registry;
else { /* upvalues */
idx = LUA_REGISTRYINDEX - idx;
api_check(idx <= MAXUPVAL + 1 “upvalue index too large“);
if (ttislcf(ci->func)) /* light C function? */
return NONVALIDVALUE; /* it has no upvalues */
else {
CClosure *func = clCvalue(ci->func);
return (idx <= func->nupvalues) ? &func->upvalue[idx-1] : NONVALIDVALUE;
}
}
}
/*
** to be called by ‘lua_checkstack‘ in protected mode to grow stack
** capturing memory errors
*/
static void growstack (lua_State *L void *ud) {
int size = *(int *)ud;
luaD_growstack(L size);
}
LUA_API int lua_checkstack (lua_State *L int n) {
int res;
CallInfo *ci = L->ci;
lua_lock(L);
api_check(n >= 0 “negative ‘n‘“);
if (L->stack_last - L->top > n) /* stack large enough? */
res = 1; /* yes; check is OK */
else { /* no; need to grow stack */
int inuse = cast_int(L->top - L->stack) + EXTRA_STACK;
if (inuse > LUAI_MAXSTACK - n) /* can grow without overflow? */
res = 0; /* no */
else /* try to grow stack */
res = (luaD_rawrunprotected(L &growstack &n) == LUA_OK);
}
if (res && ci->top < L->top + n)
ci->top = L->top + n; /* adjust frame top */
lua_unlock(L);
return res;
}
LUA_API void lua_xmove (lua_State *from lua_State *to int n) {
int i;
if (from == to) return;
lua_lock(to);
api_checknelems(fr
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2015-10-09 23:28 lualib\
目录 0 2015-10-09 22:28 lualib\lualib\
文件 37421056 2015-10-09 23:28 lualib\lualib.sdf
文件 1411 2015-10-09 22:24 lualib\lualib.sln
文件 23552 2015-10-09 23:28 lualib\lualib.v12.suo
目录 0 2015-10-09 21:29 lualib\lualib\C\
目录 0 2015-10-09 21:31 lualib\lualib\Cpp\
目录 0 2015-10-09 21:31 lualib\lualib\Cpp\x64\
文件 1657892 2015-10-09 21:31 lualib\lualib\Cpp\x64\lualib.lib
目录 0 2015-10-09 22:09 lualib\lualib\Cpp\x86\
文件 1667022 2015-10-09 22:09 lualib\lualib\Cpp\x86\lualib.lib
目录 0 2015-10-09 22:24 lualib\lualib\C\x64\
文件 1256732 2015-10-09 22:24 lualib\lualib\C\x64\lualib.lib
目录 0 2015-10-09 22:23 lualib\lualib\C\x86\
文件 1264662 2015-10-09 22:23 lualib\lualib\C\x86\lualib.lib
文件 10408 2015-10-09 22:24 lualib\lualib\lualib.vcxproj
文件 6540 2015-10-09 21:11 lualib\lualib\lualib.vcxproj.filters
文件 165 2015-10-09 21:15 lualib\lualib\lualib.vcxproj.user
文件 1147 2015-10-09 20:55 lualib\lualib\ReadMe.txt
目录 0 2015-10-09 22:10 lualib\lualib\src\
文件 30159 2014-12-26 22:43 lualib\lualib\src\lapi.c
文件 535 2014-07-16 05:26 lualib\lualib\src\lapi.h
文件 28389 2014-12-15 02:32 lualib\lualib\src\lauxlib.c
文件 8433 2014-10-30 00:11 lualib\lualib\src\lauxlib.h
文件 14507 2014-12-10 20:26 lualib\lualib\src\lba
文件 4946 2014-11-03 03:19 lualib\lualib\src\lbitlib.c
文件 24737 2014-12-30 00:49 lualib\lualib\src\lcode.c
文件 3189 2013-12-31 04:47 lualib\lualib\src\lcode.h
文件 3752 2014-11-03 03:19 lualib\lualib\src\lcorolib.c
文件 2318 2014-11-03 03:19 lualib\lualib\src\lctype.c
文件 1837 2011-07-15 20:50 lualib\lualib\src\lctype.h
............此处省略89个文件信息
- 上一篇:Visual C++ MFC 源代码大全
- 下一篇:人脸识别C++源码
相关资源
- Directshow实现的虚拟摄像头win10+vs2013
- Skinsharp-VS2013可用
- SGM C++代码 VS2013
- KinectV2 实现鼠标控制VS2013 C++版
- C++命名管道详解及简单案例基于VS20
- C++匿名管道详解及简单案例基于VS20
- vs2013推箱子游戏
- 基于winpcap的ARP发送程序
- Visusl C++2013 从入门到精通 光盘 精简
- VS2013 MFC连接Access数据库ADO详细版操作
- C++透视自瞄原理学习.rar
- MFC+VS2013+OPENCV打开视频,带有滑动条拖
- MFC+VS2013+OpenCV打开任意路径下的图片并
- 基于SQL vs2013的学生成绩管理系统
- 用C++实现简单的扫雷游戏,内含源代
- C++实现按键精灵-完整版-vs2013-可以跑
- matlab2013a/b vs2013支持
- vs2013 VC++项目里的Windows窗体应用程序
- vs 2013基于IE浏览器的源代码
- dirent.h文件,vs2010、vs2013等MFC框架常用
- VS2013 MFC ODBC连接SQL SERVER数据库编程完
- VS2013 CLR Windows窗体应用程序补丁
- VS2013+RPG小游戏
- MFC中使用JSONCPP_VS2013
- Pthread 多线程C++动态库+静态库+头文件
- vs2013 c++串口助手源码
- VS2013开发的MFC下的Modbus RTU
- jpg jpeg 解码 转 bmp RGB vs2013 c++
- 混合基快速傅里叶变换(2FFT+4fft)优
- 非常好用的c++ ftp库源码vs2013工程
评论
共有 条评论