跳转到内容

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!"

在构建多文件应用程序时,主源文件中找到的框架(如果有)会自动传递到应用程序中的所有“子”文件。但是,如果您更改此“默认”框架,则需要“全部重新构建”才能使更改影响其他文件。

华夏公益教科书