`

lua编译和执行

    博客分类:
  • lua
 
阅读更多
Lua代码

dofile 用于运行lua代码块. 但实际上loadfile才做了核心的工作.
loadfile会从一个文件中加载lua代码块,但它不会运行代码,只是编译代码,然后将编译结果作为一个函数返回。

function dofile ( filename)
     local f = assert( loadfile( filename))
     return f()
end

在发生错误的情况下,loadfile 会返回nil及错误消息

函数loadstring和loadfile类似,不同之处在于它是从一个字符串读取代码
f = loadstring(" i = i + 1 ")
f变成了一个函数,每次调用时就执行 "i = i + 1" 

loadstring总是在全局环境下 编译它的字符串


C代码

与Lua代码不同,c代码在使用前先链接入一个应用程序,使用动态连接的方式。
注:动态链接不是ANSI C标准的一部分。

lua提供的关于动态链接的功能聚集在一个函数中 package.loadlib

local path = "/usr/local/lib/lua/5.1/socket.so"
local f = package.loadlib(path, "luaopen_socket")


错误    哲学:犯错误是人的天性

对于大多数应用,无须在lua代码中作任何错误处理,应用程序本身会负责这类问题。
所有的lua活动都是由应用的一次调用开始,这类调用通常时要求lua执行一个程序块。
如果执行中发生了错误,此调用会返回一个错误代码。

如果需要在lua中处理错误,则必须使用函数pcall来包装需要执行的代码。

local status, err = pcall(function() a = "a" + 1 end)

error() 函数 可以抛出一个自动异常



分享到:
评论

相关推荐

    lua编译与反编译.rar

    其中包含了lua的编译工具和著名的lua反编译工具unluac.jar。关于unluac的使用,压缩包里有readme。可以自己看。GUI可执行程序有一个是来自吾爱的一位大佬改完之后的

    luac反编译工具

    在测试过程中,发现海岛大亨解包出来的某些lua文件在反编译过程中会比较慢(cmd下执行unluac同样的情况) 导致程序看起来似乎假死,但是实际还在运行中,请耐心等待其执行完成。 CMD反编译命令: java -jar unluac....

    LUA5.1 脚本语言 编译执行源码

    6、运行期能编译字符串形式的程序文本并载入虚拟机执行;7、通过元表(metatable)和元方法(metamethod)提供动态元机制(dynamic meta-mechanism),从而允许程序运行时根据需要改变或扩充语法设施的内定语义;8、能方便...

    luac反编译成lua文件批量执行脚本

    本工具亲测可以解析通过luajit编译的lua文件,并反编译生成原始lua文件 之前上传了一个资源 https://download.csdn.net/download/pbymw8iwm/88222584(只能一个个luac反编译),而本脚本直接批量直接反编译整个luac...

    LUAC反编译

    在测试过程中,发现海岛大亨解包出来的某些lua文件在反编译过程中会比较慢(cmd下执行unluac同样的情况) 导致程序看起来似乎假死,但是实际还在运行中,请耐心等待其执行完成。 CMD反编译命令: java -jar unluac...

    Lua中编译执行代码相关的函数详解

    主要介绍了Lua中编译执行代码相关的函数详解的相关资料,需要的朋友可以参考下

    十分钟Lua脚本系统入门

    Lua脚本加载执行 通信:Lua脚本中调用Native函数 通信:Native代码中调用Lua函数 通信:Native代码中访问Lua全局变量 解决方案包含以下工程(VS2010) HelloLua:一个演示使用Lua的TestCase. lualib:静态库(包含...

    LUAC反编译程序.zip

    运行环境:GUI界面:.net framework 2.0 unluac :java环境,反编译过程中,会在程序目录生成执行文件,反编译结束后会自动删除。

    Lua的编译、执行和调试技术介绍

    主要介绍了Lua的编译、执行和调试技术介绍,本文着重讲解了对错误的处理,另外也讲解了编译和执行等知识,需要的朋友可以参考下

    Lua 5.2.2 windows平台可执行文件、头文件和库文件

    Lua官网不提供原生的windosw平台的bin版本,自行编译困难重重。 这里我整理和生成的基于Lua 5.2.2的windows平台开发所需要的文件。 包括: 1,lua解释器,编译器(lua+luac) 2,lua的动态库文件(lua52.dll) 3,...

    luadec.rar用于LUA反编译使用

    LUA5.1 编译后的LUAC逆向反编译软件源码,可以用VS2010编译 P.S:附带JAVE版可执行一份

    《自己动手实现Lua:虚拟机、编译器和标准库》_张秀宏_2018-9-27.rar

    作者融合自己丰富的工程实践经验,详细阐述Lua语言的核心语法和实现原理,深入探讨Lua虚拟机、编译器和标准库,并给出了实际可以编译执行的代码。助你从零基础开始编程实现Lua语言,理解脚本语言工作原理。全书分为3...

    易语言LUA支持库1.0#0版(第三方)

    LUA虚拟机,提供对LUA代码进行编译/解释执行的功能。LUA类库常量(常量)。LUA类库常量掩码,提供给 LUA.加载类库() 使用.LUA类型 (常量)。LUA数据类型值。用以判断LUA传递到应用程序环境中的数据类型的一组常量。...

    基于Lua实现的脚本和服务器引擎Node-Lua.zip

    调用同步和异步api时引擎核心层将会自动挂起正在执行的lua函数(coroutine),直接放弃占用的cpu资源; 服务创建以指定lua文件为入口脚本文件,脚本直接运行在新服务的coroutine环境中,支持在入口脚本当中直接调用...

    Lua5.3.5.zip

    Lua5.3下载,由官方源码在Windows x64环境编译生成的Lua可执行文件 也可自行配置编译:https://blog.csdn.net/u012351750/article/details/99172112

    【可执行文件】Lua已编译,Windos10 x64 .exe文件以及库

    Lua已编译,Windos10 x64 .exe文件以及库

    grpc-lua 代码及示例Windows执行程序

    Lua gRPC (https://github.com/jinq0123/grpc-lua) 编译成功后的示例Windows可执行程序。请执行 examples/helloworld/run_*.bat.

    Lua教程(六):编译执行与错误

    主要介绍了Lua教程(六):编译执行与错误,本文讲解了、C代码、错误、错误处理与异常、错误消息与追溯等内容,需要的朋友可以参考下

    VC6 下的lua

    Lua是一种完全免费的脚本语言, 可以和C/C++... 执行版本, 不过不用担心, 因为lua源码可以在任何一种C/C++的编译器上编译. 如果用的VC6, 可以下载所需的project文件。为了以后使用方便,最好把bin目录加入到path里面。

    grpc-lua 示例 CentOS 7.4 执行程序打包

    https://github.com/jinq0123/grpc-lua 是 Lua gRPC 库。 ...macos,ubuntu,centos都不能编译成功 能不能把编译好的.so上传一份啊 该zip包是按README编译生成并实测通过的示例程序打包。

Global site tag (gtag.js) - Google Analytics