深圳市住建局网站,做网站后期都用什么软件,国外二级域名免费申请,protected wordpress login 插件源码已经更新在CSDN的码库里#xff1a;
git clone https://gitcode.com/funsion/CLua.git
在src文件夹下的lualib.h#xff0c;是Lua的标准库模块。
Lua标准库一共有有个10个库#xff0c;base, 基本用不着改#xff0c;所以没加中文名称。
函数声明宏名英文库名中文库…源码已经更新在CSDN的码库里
git clone https://gitcode.com/funsion/CLua.git
在src文件夹下的lualib.h是Lua的标准库模块。
Lua标准库一共有有个10个库base, 基本用不着改所以没加中文名称。
函数声明宏名英文库名中文库名详解LUAMOD_API int luaopen_base(lua_State *L);N/A (通常不需要宏)base提供Lua语言的核心功能是所有Lua程序默认加载的部分。LUAMOD_API int luaopen_coroutine(lua_State *L);LUA_COLIBNAMEcoroutine协程提供协程功能支持允许非阻塞式并发执行流。LUAMOD_API int luaopen_table(lua_State *L);LUA_TABLIBNAMEtable表提供表table数据结构的操作包括创建、修改和查询等。LUAMOD_API int luaopen_io(lua_State *L);LUA_IOLIBNAMEio端口提供基本的输入输出功能如文件读写操作等。LUAMOD_API int luaopen_os(lua_State *L);LUA_OSLIBNAMEos系统提供与操作系统交互的功能如环境变量获取、时间处理、进程管理等。LUAMOD_API int luaopen_string(lua_State *L);LUA_STRLIBNAMEstring字提供字符串的各种操作如连接、查找、替换等。LUAMOD_API int luaopen_utf8(lua_State *L);LUA_UTF8LIBNAMEutf8提供对UTF-8编码的支持进行解码和编码等操作。LUAMOD_API int luaopen_math(lua_State *L);LUA_MATHLIBNAMEmath数提供数学运算函数如算术、三角函数、随机数生成等。LUAMOD_API int luaopen_debug(lua_State *L);LUA_DBLIBNAMEdebug调试提供调试工具如查看和修改堆栈、设置断点、跟踪调用过程等。LUAMOD_API int luaopen_package(lua_State *L);LUA_LOADLIBNAMEpackage包提供模块加载机制支持通过require语句加载外部库或模块。
原始的代码为
LUAMOD_API int (luaopen_base) (lua_State *L);#define LUA_COLIBNAME coroutine
LUAMOD_API int (luaopen_coroutine) (lua_State *L);#define LUA_TABLIBNAME table
LUAMOD_API int (luaopen_table) (lua_State *L);#define LUA_IOLIBNAME io
LUAMOD_API int (luaopen_io) (lua_State *L);#define LUA_OSLIBNAME os
LUAMOD_API int (luaopen_os) (lua_State *L);#define LUA_STRLIBNAME string
LUAMOD_API int (luaopen_string) (lua_State *L);#define LUA_UTF8LIBNAME utf8
LUAMOD_API int (luaopen_utf8) (lua_State *L);#define LUA_MATHLIBNAME math
LUAMOD_API int (luaopen_math) (lua_State *L);#define LUA_DBLIBNAME debug
LUAMOD_API int (luaopen_debug) (lua_State *L);#define LUA_LOADLIBNAME package
LUAMOD_API int (luaopen_package) (lua_State *L);
更改成以下代码
/* 基础库 */
LUAMOD_API int (luaopen_base) (lua_State *L);
/* 协程库 */
#define LUA_COLIBNAME coroutine
#define LUA_COLIBNAME_C 协程
LUAMOD_API int (luaopen_coroutine) (lua_State *L);
/* 表库 */
#define LUA_TABLIBNAME table
#define LUA_TABLIBNAME_C 表
LUAMOD_API int (luaopen_table) (lua_State *L);
/* I/O库 */
#define LUA_IOLIBNAME io
#define LUA_IOLIBNAME_C 端口
LUAMOD_API int (luaopen_io) (lua_State *L);
/* 操作系统库 */
#define LUA_OSLIBNAME os
#define LUA_OSLIBNAME_C 系统
LUAMOD_API int (luaopen_os) (lua_State *L);
/* 字符串库 */
#define LUA_STRLIBNAME string
#define LUA_STRLIBNAME_C 字
LUAMOD_API int (luaopen_string) (lua_State *L);
/* UTF-8库 */
#define LUA_UTF8LIBNAME utf8
LUAMOD_API int (luaopen_utf8) (lua_State *L);
/* 数学库 */
#define LUA_MATHLIBNAME math
#define LUA_MATHLIBNAME_C 数
LUAMOD_API int (luaopen_math) (lua_State *L);
/* 调试库 */
#define LUA_DBLIBNAME debug
#define LUA_DBLIBNAME_C 调试
LUAMOD_API int (luaopen_debug) (lua_State *L);
/* 包装库 */
#define LUA_LOADLIBNAME package
#define LUA_LOADLIBNAME_C 包
LUAMOD_API int (luaopen_package) (lua_State *L);
为了保证中英文库名都可以使用以便你可以复制英文原码来进行更改。所以保留了英文的库名列表这样就只能使用两个库列表
#define LUA_COLIBNAME coroutine 定义协程英文库宏英文库名 #define LUA_COLIBNAME_C 协程 定义协程中文库宏英文库名
其实它们都是加载同样的库名算是加载了2次以Lua内部算法应该只会加载一次。
LUAMOD_API int (luaopen_coroutine) (lua_State *L);函数是Lua标准库中用于打开并注册协程库到指定Lua状态机的入口函数。通过调用此函数可以使得Lua程序拥有创建和管理协程的能力实现非阻塞式的并发执行逻辑。
更改完之后同样需要重新编译Lua的源码实现以上列出的关键词的中文化。
注意在Window系统下编译Lua, 最好将所有Lua的源码重新保存成ANSI格式的文件刚下载的默认的源码会是UTF-8格式的。
这个事情说三遍
1不然就会出现Window下的UTF-8源码可编译但Shell里的中文输出会乱码。 2要不然就是Window的ANSI源码不可编译假如你没做以上步骤 3如果是用ANSI格式的源码编译的Lua.exe对应的你在Window下写的Lua程序也是需要保存成ANSI格式的。这样就可以在Shell里输出正确的中文显示。
因为只是改库名这里就先不用例程演示了。请看接下来的文章改完协程再上例程。