EXTERN
- 来源: https://www.freebasic.net/wiki/wikka.php?wakka=KeyPgExtern
- 最后更新: 2021-10-05
声明具有外部链接的变量、数组或对象
语法
Extern [ Import ] symbolname[ (subscripts) ] [ Alias "aliasname" ] as DataType [, ...]参数
symbolname
变量、数组或对象的名称。
aliasname
变量、数组或对象的备用外部名称。
说明
将 symbolname 声明为外部名称,意味着它对外部模块(包括将被编译为静态库和动态库(DLL)的模块)是全局可见的。
Extern 仅声明变量、数组和对象,不对其进行定义(与 Common 或 Dim 不同)。它还具有将 symbolname 设为 共享 名称的效果,即在过程内部也可见(参见 Shared)。声明为外部名称的 symbolname 只能在单个外部模块中(使用 Dim 或 Redim)被(重新)定义。
若使用了 Alias,则会以 aliasname 作为外部名称而非 symbolname,且其大小写将被保留。
Extern 是为支持 C 库而添加的。
若使用了 Import,该名称将被加入动态库导入列表,以便在运行时修正其地址。
示例
start GeSHi
vb
'' extern1.bas
Extern Foo Alias "foo" As Integer
Sub SetFoo
foo = 1234
End Subend GeSHi
start GeSHi
vb
'' extern2.bas
Declare Sub SetFoo
Extern Foo Alias "foo" As Integer
Dim foo As Integer = 0
SetFoo
Print Fooend GeSHi
输出:
1234平台差异
- Windows 不支持将
Extern与动态库(使用 -dll 或 -dylib 编译)一起使用。
方言差异
- 在 -lang qb 方言中不可用。
与 QB 的区别
- FreeBASIC 新增
另请参阅
Extern...End ExternCommonDimSharedAlias(名称)Alias(修饰符)
返回 目录