{{fbdoc item="title" value="LIB"}}----
Specifies the library where a sub or function can be found as part of a declaration

{{fbdoc item="syntax"}}##
	[[KeyPgDeclare|declare]] { [[KeyPgSub|sub]] | [[KeyPgFunction|function]] } //proc_name// **lib** "//libname//" [ [[KeyPgAlias|alias]] "//symbol_name//" ] ( //arguments list// ) [[KeyPgAs|as]] //return_type//
	
	[[KeyPgExternBlock|extern]] "//mangling//" lib "//libname//"
		//declarative statements//
	end [[KeyPgExternBlock|extern]]
	
	[[KeyPgType|type]] //T//
		[[KeyPgAs|as]] [[KeyPgInteger|integer]] dummy
		[[KeyPgDeclare|declare]] [[KeyPgConstructor|constructor]] **lib** "//libname//" [ [[KeyPgAlias|alias]] "//symbol_name//" ] ( //arguments list// )
	end [[KeyPgType|type]]

##
{{fbdoc item="desc"}}
	In ##[[KeyPgSub|Sub]]## or ##[[KeyPgFunction|Function]]## declarations, and also in class method declarations (including constructors and destructors), ##**lib**## indicates the library containing the function. Libraries specified in this way are linked in as if ##[[KeyPgInclib|#inclib "libname"]]## or ##[[CompilerOptl|-l libname]]## had been used.
	
	##**lib**## can also be used with [[KeyPgExternBlock|Extern ... End Extern blocks]] to specifiy a ##**lib**## for all declarations inside.

{{fbdoc item="ex"}}
{{fbdoc item="filename" value="examples/manual/procs/mydll.bas"}}%%(freebasic)
'' mydll.bas
'' compile with:
''   fbc -dll mydll.bas

Public Function GetValue() As Integer Export
  Function = &h1234
End Function
%%

{{fbdoc item="filename" value="examples/manual/procs/lib.bas"}}%%(freebasic)
Declare Function GetValue Lib "mydll" () As Integer

Print "GetValue = &h"; Hex(GetValue())

' Expected Output :
' GetValue = &h1234
%%

{{fbdoc item="diff"}}
	- New to ""FreeBASIC""

{{fbdoc item="see"}}
	- ##[[KeyPgDeclare|Declare]]##
	- ##[[KeyPgInclib|#inclib]]##

{{fbdoc item="back" value="CatPgProcedures|Procedures"}}