{{fbdoc item="title" value="IMPORT"}}---- External linkage attribute for public data located in DLL's {{fbdoc item="syntax"}}## [[KeyPgExtern|Extern]] **Import** //symbolname//[( //subscripts//)] [ [[KeyPgAlias|alias]] "//aliasname//"] [ [[KeyPgAs|as]] [[DataType|DataType]]] [, ...] ## {{fbdoc item="desc"}} Is used only (with the ##[[KeyPgExtern|Extern]]## keyword) in external modules to access global variables from Win32 DLLs: the variable names will be added to the dynamic library import list so that their addresses can be fixed at run-time. This is due to the level of indirection on any such access: an implicit pointer dereference. {{fbdoc item="ex"}} {{fbdoc item="filename" value="examples/manual/module/mydll.c"}}%%(c) /* mydll.c : compile with gcc -shared -Wl,--strip-all -o mydll.dll mydll.c */ __declspec( dllexport ) int MyDll_Data = 0x1234; %% {{fbdoc item="filename" value="examples/manual/module/import.bas"}}%%(freebasic) /' import.bas : Compile with fbc import.bas '/ #inclib "mydll" Extern Import MyDll_Data Alias "MyDll_Data" As Integer Print "&h" + Hex( MyDll_Data ) ' Output: ' &h1234 %% {{fbdoc item="lang"}} - Not available in the //[[CompilerOptlang|-lang qb]]// dialect unless referenced with the alias ##**""__Import""**##. {{fbdoc item="diff"}} - New to ""FreeBASIC"" {{fbdoc item="see"}} - ##[[KeyPgExtern|Extern]]## {{fbdoc item="back" value="CatPgModularizing|Modularizing"}}