Declares a variable, array or object having external linkage

Extern [ Import ] symbolname[ (subscripts) ] [ Alias "aliasname" ] as DataType [, ...]

The name of the variable, array or object.
An alternate external name for the variable, array or object.

Declares symbolname as an external name, meaning it is global to external modules including those to be compiled as static libraries, but not those to be compiled as dynamic libraries (DLLs). Extern only declares variables, arrays and objects, and does not define them (different from Common or Dim). It also has the effect of making symbolname a shared name, meaning it is visible within procedures (see Shared). A symbolname declared as external name can be (re)defined (using Dim or Redim) only in a single external module.

If Alias is used, aliasname will be used as the external name rather than symbolname, and its case will be preserved.

Extern was added in order to support the C libraries.

If Import is used, the name will be added to the dynamic library import list so its address can be fixed at run-time.

'' extern1.bas

Extern Foo Alias "foo" As Integer

Sub SetFoo
    foo = 1234
End Sub

'' extern2.bas

Declare Sub SetFoo

Extern Foo Alias "foo" As Integer

Dim foo As Integer = 0


Print Foo


Dialect Differences:
Differences from QB:
See also:
Back to Modularizing
Valid XHTML :: Valid CSS: :: Powered by WikkaWiki

sf.net phatcode