BlitzMax/语言/模块
外观
模块是常量、全局变量、函数和用户定义类型的预编译集合,可供应用程序或其他模块使用。
模块位于主 BlitzMax 目录中的“mod”目录中。要创建您自己的模块,您必须使用以下格式在“mod”中添加一个新的子目录
/mod/modscope.mod/modname.mod
Modscope 应该是一个唯一的名称(例如,您的组织或公司的名称),用于将来自同一来源的模块分组在一起。Modscope 和 modname 都应该是有效的标识符。此外,为了避免 Linux 等区分大小写文件系统的问题,建议 modscope 和 modname 使用小写字母。
您还需要在模块目录中创建一个主模块源文件。此文件必须与 ModuleName 同名
/mod/modscope.mod/modname.mod/modname.bmx
最后,您的源文件必须在顶部包含 Module 语句
Module modscope.modname
设置好模块后,可以使用 BMK 来构建它
bmk makemods modscope.modname
或者,要构建同一范围内的所有模块
bmk makemods modscope
要在另一个模块中使用模块,只需使用 Import 命令导入它
Import modscope.modname
这将导入指定的模块 *以及* 该模块导入的任何模块。换句话说,Import 是递归的。
默认情况下,BlitzMax 在编译应用程序时导入它在“brl”和“pub”模块范围中找到的 *每个* 模块。但是,这会导致生成笨重的可执行文件。您可以使用 Framework 命令覆盖此默认行为
- Framework modscope.modname
Framework 应出现在您的主应用程序源文件顶部。
指定应用程序框架可以阻止 BlitzMax 导入所有模块。只有框架模块和任何显式导入的模块会被导入到您的应用程序中。
例如,要创建一个“简化”的 BASIC 应用程序,您可以使用 BRL.Basic 框架
Framework BRL.Basic 'create a stripped down app Print "Hello World!"
在构建多文件应用程序时,主源文件中找到的框架(如果有)会自动传递到应用程序中的所有“子”文件。但是,如果您更改此“默认”框架,则需要“全部重新构建”才能使更改影响其他文件。