首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用NLua时,"require“关键字是如何工作的

使用NLua时,"require“关键字是如何工作的
EN

Stack Overflow用户
提问于 2016-10-31 05:10:05
回答 1查看 555关注 0票数 3

我有一个包含我的业务逻辑的Lua代码,我想使用NLua在.NET中运行它。

我的一些lua文件目前使用"require“关键字来引用其他文件中的函数。现在,如果我使用ZeroBrane Studio来运行代码,这会运行得很好。但是,一旦我使用"DoFile“将代码加载到NLua中,我就会得到一些”找不到模块“的错误。

我的问题是:当在NLua中运行代码时,我可以使用“要求”的概念吗?如果不是,那么在对文件运行DoFile之前,我是否需要删除这些行(当然,还要确保以正确的顺序运行文件)?

更新:我想我可能只需要将我的Lua文件夹添加到package.path中。我通过做一个DoString("package.path = '<my_path>' .. package.path");解决了这个问题,这是“最佳实践”吗?

EN

回答 1

Stack Overflow用户

发布于 2018-12-21 03:53:09

搜索开始的根目录位置是运行可执行文件的位置,而不是运行DoString的文件所在的位置。

以下是一些使用heaps.lua作为示例文件的NLua需要查看的位置的示例:

没有文件'./heaps.lua‘

没有文件'./heaps/init.lua‘

没有文件'./lua/heaps.lua‘

示例:

可执行路径C:\foo\bar.exe

脚本路径C:\baz\qux.lua

qux.lua需要heaps,NLua将在C:\foo\中搜索堆,而不会搜索C:\baz\

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40333654

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档