lua require路徑設置實例


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
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM