A dynamically loadable library is a dynamic-link library (DLL)
on Win32, and an assembly (also a DLL) on the .NET platform. It
is a collection of routines that can be called by applications
and by other DLLs or shared objects. Like units, dynamically
loadable libraries contain sharable code or resources. But this
type of library is a separately compiled executable that is
linked at runtime to the programs that use it. Delphi programs
can call DLLs and assemblies written in other languages, and
applications written in other languages can call DLLs or
assemblies written in Delphi. You can call operating system
routines directly, but they are not linked to your application
until runtime. This means that the library need not be present
when you compile your program. It also means that there is no
compile-time validation of attempts to import a routine. Before
you can call routines defined in DLL or assembly, you must
import them. This can be done in two ways: by declaring an
external procedure or function, or by