1.首先要强调的是,lua require的路径用的是斜杠"/",而不是从Windows文件属性那里复制来的反斜杠"\"。

2.通过 print(pagckage.path) 和print(package.cpath)打印lua系统封装的两个全局属性可以看到当前lua解析器require的时候默认替换的路径

3.更改路径的时候,lua脚本加  ";..\\?.lua" 而dll文件加 ";..\\?.dll"

下面,我要将路径为 "D:\Lua5.1\lua\hgj-test\huang.lua" 的lua脚本require进hgj.lua脚本里。

huang.lua脚本:

huang={}
function huang.SumDouble(max)
sum=0
for i=0,max,2 do
sum=sum+i
end
return sum

end

hgj.lua脚本:

package.path = "D:/Lua5.1/lua/hgj-test/huang.lua" ..";..\\?.lua"

require"huang.lua"
print(huang.SumDouble(100))
print(package.path)
print(package.cpath)

在hgj.lua按F5打印出来的结果是:

2550
D:/Lua5.1/lua/hgj-test/huang.lua;..\?.lua
.\?.dll;.\?51.dll;D:\Lua5.1\?.dll;D:\Lua5.1\?51.dll;D:\Lua5.1\clibs\?.dll;D:\Lua5.1\clibs\?51.dll;D:\Lua5.1\loadall.dll;D:\Lua5.1\clibs\loadall.dll

因为编码不同,所以加载dll出来的是乱码,如果知道dll里封装的属性和函数,加载之后就可以用print(package.loadlib("--dll名--",“--属性名/函数名--”))来读取dll的属性和函数。

我随便加载了公司打卡用的钉钉软件里的一个dll:

package.path = "D:/Program Files (x86)/DingDing/main/current/alilog.dll"..";..\\?.dll"
require"alilog.dll"

--package.loadlib("alilog.dll","不知道函数名")

加载出一篇乱码,看不了,而且也不知道里面有什么函数,用不了,只能当示范。

当然,如果不用require调用其他脚本的属性或者函数,而是直接执行一整个其他脚本,还是 dofile("文件路径") 舒服,直接

dofile("D:/Lua5.1/lua/hgj-test/huang.lua")

就O了,但是有一点,代码设计的时候,调用的脚本里面的函数必须它自己执行,如果你光封装属性函数,不执行,那就不能用dofile这条路线了。

原文:https://blog.csdn.net/piger91/article/details/79940663
---------------------
作者:青竹浪
来源:CSDN
原文:https://blog.csdn.net/piger91/article/details/79940663
版权声明:本文为博主原创文章,转载请附上博文链接!

lua require路径设置实例的更多相关文章

  1. ulua 路径小记 以及 lua require 机制整理

    ulua 路径小记 在学习ulua时,require模块的根路径可以为项目的Lua文件夹或者ToLua文件夹(Editor下),但是在package.path和package.cpath中并没有看到当 ...

  2. Lua require 相对路径

    lua require 加载方式与我们现在熟知的路径系统不太一样,想要知道lua require 方法的工作原理也很简单 随便写一个错误的require 代码即可: 1 require("l ...

  3. Django基础,Day9 - 静态文件目录与路径设置说明(eg. images, JavaScript, CSS)

    静态文件路径设置官方说明 1. Make sure that django.contrib.staticfiles is included in your INSTALLED_APPS. 2. In ...

  4. Lua Require函数

    转自:http://www.cppblog.com/cslover/archive/2013/12/21/204934.html Lua提供高级的require函数来加载运行库.粗略的说require ...

  5. JSP Servlet 路径解析 路径设置

    转自:http://ethen.iteye.com/blog/800415 在用JSP和Servlet编写Web应用时,经常遇到的问题就是找不到.do路径,或者.do路径不能解析,其实归根到底就是Se ...

  6. lua package path 设置方法

    lua package path 设置方法: 添加环境变量LUA_PATH="/add_path/?.lua;;" 1.add_path为新添加的目录: 2.一定要添加双引号: 3 ...

  7. 扩展 lua require 的行为

    扩展 lua require 的行为 来源 https://blog.codingnow.com/2015/10/lua_require_env.html 今天同事提了个需求,他希望可以给部分 lua ...

  8. Oracle归档日志与非归档日志的切换及路径设置

    --==================== -- Oracle 归档日志 --==================== Oracle可以将联机日志文件保存到多个不同的位置,将联机日志转换为归档日志的 ...

  9. MySQL主从(MySQL proxy Lua读写分离设置,一主多从同步配置,分库分表方案)

    Mysql Proxy Lua读写分离设置 一.读写分离说明 读写分离(Read/Write Splitting),基本的原理是让主数据库处理事务性增.改.删操作(INSERT.UPDATE.DELE ...

随机推荐

  1. Redis速记

    参考: 集群 https://blog.csdn.net/xiaoxiaoyusheng2012/article/details/82051744 主从 https://blog.csdn.net/u ...

  2. MySQL数据库~~~~~存储引擎

    1. InnoDB InnoDB引擎特点: 1.支持事务:支持4个事务隔离界别,支持多版本读. 2.行级锁定(更新时一般是锁定当前行):通过索引实现,全表扫描仍然会是表锁,注意间隙锁的影响. 3.读写 ...

  3. GNN 相关资料记录;GCN 与 graph embedding 相关调研

    最近做了一些和gnn相关的工作,经常听到GCN 和 embedding 相关技术,感觉很是困惑,所以写下此博客,对相关知识进行索引和记录: 参考链接: https://www.toutiao.com/ ...

  4. Could not open requirements file: [Errno 2] No such file or directory: 'requirements.txt

    最近安装python,已经安装好,cmd终端中输入python.pip等命令都有用 然而在配置requirements.txt文件过程中,执行语句 “pip install -r requiremen ...

  5. 每日JAVA面试

  6. 如何获得大学教材的PDF版本?

    最近急需一本算法书的配套答案,这本配套单独出售,好像在市面上还买不到,在淘宝上搜索也只是上一个版本,并没有最新版本,让我很无奈.加上平时肯定会有这么一种情况,想看一些书,但买回来也看不了几次,加上计算 ...

  7. ASP.NET Core - 基于IHttpContextAccessor实现系统级别身份标识

    问题引入: 通过[ASP.NET Core[源码分析篇] - 认证]这篇文章中,我们知道当请求通过认证模块时,会给当前的HttpContext赋予当前用户身份标识,我们在需要授权的控制器中打上[Aut ...

  8. 在vue组件中设置定时器和清除定时器

    由于项目中难免会碰到需要实时刷新,无论是获取短信码,还是在支付完成后轮询获取当前最新支付状态,这时就需要用到定时器.但是,定时器如果不及时合理地清除,会造成业务逻辑混乱甚至应用卡死的情况,这个时就需要 ...

  9. 配置linux 防火墙,只有固定IP和端口才能能访问完美解决

    //添加开放的端口和固定ip vi  /etc/sysconfig/iptables [root@root220156 /]# echo "unset MAILCHECK"> ...

  10. 【Gradle】Gradle插件

    Gradle插件 插件的作用 把插件应用到项目中,插件会扩展项目的功能,帮助在项目构建过程中做很多事情. 1.可以添加任务到项目中,帮助完成测试.编译.打包等. 2.可以添加依赖配置到项目中,可以通过 ...