lua require路径设置实例

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

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

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

下面,我要将路径为 "D:Lua5.1luahgj-testhuang.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.1clibs?.dll;D:Lua5.1clibs?51.dll;D:Lua5.1loadall.dll;D:Lua5.1clibsloadall.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
版权声明:本文为博主原创文章,转载请附上博文链接!

原文地址:https://www.cnblogs.com/welcome-to-fang-qi-blog/p/10899624.html