我正在使用C模糊API,我想加載一個文件中包含的功能模塊可以說mycalculator.lua。這似乎運行良好,但是當我稍後嘗試運行另一個需要'mycalculator'的文件A.lua時,它不起作用,除非mycalculator.lua文件在文件系統上可用以重新加載。我試圖將它加載到系統中,然後在文件系統中沒有mycalculator.lua的情況下使用它。有沒有辦法讓lua系統在不加載的情況下保持定義?基本上我將mycalculator.lua轉換成一個字符串,然後運行它。我不希望將mycalculator.lua文件放入文件系統,我只想將它作爲字符串交付,然後能夠在下一個字符串中要求它傳遞給堆棧謝謝如何在Lua中添加函數定義而不需要加載文件?
1
A
回答
2
有一個簡單地執行Lua腳本和加載Lua模塊之間的區別。如果你想加載一個Lua模塊,那麼你必須實際加載一個Lua模塊,就像腳本一樣:調用require
。
既然你看起來對Lua來說是新手,我應該解釋一下。你可能在Lua腳本中看到過這樣的代碼:
require 'mycalculator'
這不是Lua的一些特別聲明。這是一個函數調用。這僅僅是一些語法糖:在Lua
require('mycalculator')
功能可以與NAME VALUE
語法而不是NAME(...)
語法被調用,但只允許你發送一個參數。參數必須是文字(或表格構造函數)。
爲了從C調用Lua require
函數,您必須使用Lua堆棧。您必須使用lua_getfield(L, LUA_GLOBALSINDEX, "require");
從全局表中獲取函數。然後,將字符串壓入包含要加載的模塊名稱的堆棧中。然後,您使用lua_pcall
或任何Lua函數調用函數來調用它。
相關問題
- 1. Lua C api:如何加載定義爲模塊的lua文件?
- 2. 如何在不同的文件中添加TypeScript函數重載
- 3. 加載文件在lua
- 4. 如何在redis \ lua中定義函數?
- 5. 如何在Excel 2016中添加自定義加載項而不瀏覽它?
- 6. Uncaught TypeError:$(...)。final_countdown不是函數|已加載需要的文件
- 7. 添加Lua函數語法
- 8. Ruby加載/需要文件
- 9. 如何在定義函數中添加一個定義
- 10. 如何在辣椒插件中添加自定義函數API
- 11. 如何添加從nib文件加載的自定義CalloutView
- 12. 如何加載自定義函數
- 13. 在需要時加載庫,而不是第一次加載?
- 14. 需要文件Lua
- 15. 在pages.xml中添加登錄需要樣式不再加載
- 16. 如何在Lua中加載一個未命名的函數?
- 17. 在需要時加載JavaScript文件
- 18. 將.ics文件添加到Outlook,而不需要用戶下載它
- 19. Python:需要將選定的文件名添加到數組中
- 20. 如何在java中需要時加載類文件
- 21. 如何將函數添加爲jQuery中的自定義事件?
- 22. 如何添加要在AlloyUI中全局加載的自定義模塊?
- 23. 如何禁用eval函數而不需要php.ini文件?
- 24. 如何在select vue.js 2中添加需要或不需要的條件?
- 25. Emacs:定義一個函數來加載定義函數本身的文件
- 26. 如何在Visio 2013加載項中添加自定義面板?
- 27. 如何在CustomBox中添加自定義加載圖像?
- 28. 如何在iphone中添加自定義加載器
- 29. 如何從另一個lua文件中加載和執行lua文件
- 30. Lua:爲回調函數添加參數
什麼*做*你有一個地方把這個字符串?字符串在文件系統中並不神奇,它們總是需要某種存儲。你打算如何執行A.lua? – kikito 2011-12-22 08:35:18