跳转到内容

BlitzMax/语言/项目管理

来自维基教科书,开放的书籍,开放的世界

导入源文件

[编辑 | 编辑源代码]

Import 语句提供了一种高效的方式将您的项目拆分为多个文件。导入的语法是

Import 文件名

文件名 必须是一个用引号引起来的字符串文字,带有可识别的源文件扩展名,例如 'bmx'。

导入一个文件会使该文件中声明的所有全局变量、常量、函数和用户定义类型可用于当前正在编译的文件。

导入的文件可以被预编译。这意味着如果您有一个被拆分为多个源文件的项目,只有实际修改的文件(以及这些修改影响的文件)需要重新编译。例如,假设您有一个被拆分为两个源文件的项目

'file1.bmx
Import "file2.bmx"
Print Test()

'file2.bmx
Function Test:String()
Return "This is a test!"
End Function

如果 file2.bmx 随后被修改,则两个文件都需要重新编译,因为不仅 file2.bmx 发生了变化,而且它的变化也可能影响 file1.bmx。

但是,如果只有 file1.bmx 被修改,则无需重新编译 file2.bmx。BlitzMax 的 BMK]] 实用程序会为您处理所有这些。

Import 的一个重要限制是您不能创建导入的“循环”。

包含源文件

[编辑 | 编辑源代码]

Include 是另一种将项目拆分为多个文件的方式。Include 的语法与 Import 相同,但是包含的文件只是“逐字地”插入到包含文件中,而不是单独编译。

根据平台和项目,Include 可能比 Import 更快。它还允许您绕过 Import 的“无循环”限制。

包含二进制文件

[编辑 | 编辑源代码]

Incbin 语句允许您将二进制文件与您的程序一起包含。Incbin 的语法与 Import 相同,但是可以指定任何类型的文件,而不仅仅是 'bmx' 文件。

您可以使用 IncbinPtr(返回一个 Byte Ptr)和 IncbinLen(返回一个 Int)访问包含在 incbin 文件中的二进制数据。IncbinPtrIncbinLen 都需要一个文件名参数。例如

Incbin "data.bin"
Local p:Byte Ptr=IncbinPtr( "data.bin" )
Local n:Int=IncbinLen( "data.bin" )
For Local i=0 Until n
Print "Byte "+i+":"+p[i]
Next
华夏公益教科书