mirror of
https://github.com/QB64-Phoenix-Edition/QB64pe.git
synced 2024-09-16 12:04:06 +00:00
aeb9c0668b
Note: Many files were removed (not yet existing/empty pages). The parser will try to download them on demand and will auto-generate text for missing pages (eg. most _gl pages).
50 lines
2.2 KiB
Text
50 lines
2.2 KiB
Text
{{QBDLDATE:05-20-2022}}
|
|
{{QBDLTIME:23:12:09}}
|
|
[[CHAIN]] is used to change seamlessly from one module to another one in a program.
|
|
|
|
|
|
{{PageSyntax}}
|
|
: [[CHAIN]] {{Parameter|moduleName$}}
|
|
|
|
|
|
{{PageLegacySupport}}
|
|
* The multi-modular technique goes back to when '''QBasic''' and '''QuickBASIC''' had module size constraints. In '''QB64''' the [[CHAIN]] statement has been implemented so that that older code can still be compiled, though it is advisable to use single modules for a single project (not counting [[$INCLUDE]] libraries), for ease of sharing and also because the module size constraints no longer exist.
|
|
|
|
|
|
{{Parameters}}
|
|
* {{Parameter|moduleName$}} is a variable or a literal [[STRING]] value in quotation marks with the optional EXE or BAS file name extension.
|
|
|
|
|
|
{{PageDescription}}
|
|
* CHAIN requires that both the invoking and called modules are of either .BAS or .EXE file types.
|
|
* In Windows, '''QB64''' will automatically compile a CHAIN referenced BAS file if there is no EXE file found.
|
|
* CHAIN looks for a file extension that is the same as the invoking module's extension.
|
|
* The module's filename extension is not required. To save editing at compile time just omit the extensions in the calls.
|
|
* To pass data from one module to the other use [[COMMON SHARED]]. The COMMON list should match [[type]]s and names.
|
|
* '''QB64 does not retain the [[SCREEN]] mode like QBasic did.'''
|
|
* Variable data can be passed in files instead of using [[COMMON SHARED]] values. '''QB64''' uses files to pass [[COMMON]] lists.
|
|
* [[Keywords_currently_not_supported_by_QB64#Keywords_Not_Supported_in_Linux_or_MAC_OSX_versions|Not available in Linux or macOS]]'''.
|
|
|
|
|
|
''QBasic/QuickBASIC:''
|
|
* Compiled EXE files had to include BRUN45.EXE in QuickBASIC 4.5 when CHAIN was used with [[COMMON SHARED]].
|
|
|
|
|
|
{{PageExamples}}
|
|
''Example:'' CHAIN looks for same file type extension as program module (BAS or EXE).
|
|
{{CodeStart}}
|
|
{{Cl|CHAIN}} "Level1"
|
|
{{CodeEnd}}
|
|
|
|
''Explanation:'' The file referred to is "Level1.BAS" if the program module using the call is a BAS file. If the program was compiled, it would look for "Level1.EXE".
|
|
|
|
|
|
{{PageSeeAlso}}
|
|
* [[RUN]]
|
|
* [[COMMON]], [[COMMON SHARED]]
|
|
* [[SHARED]]
|
|
* [[LINKed or Merged Modules]]
|
|
|
|
|
|
{{PageNavigation}}
|
|
|