diff --git a/rtl/os2/dynlibs.inc b/rtl/os2/dynlibs.inc new file mode 100644 index 0000000000..8dfb1772c4 --- /dev/null +++ b/rtl/os2/dynlibs.inc @@ -0,0 +1,71 @@ +{ + $Id$ + This file is part of the Free Pascal run time library. + Copyright (c) 1999-2000 by the Free Pascal development team + + Implements OS dependent part for loading of dynamic libraries. + + See the file COPYING.FPC, included in this distribution, + for details about the copyright. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + + **********************************************************************} + + +{$ifdef readinterface} + +{ --------------------------------------------------------------------- + Interface declarations + ---------------------------------------------------------------------} + +type + TLibHandle = longint; + +const + NilHandle = 0; + +{$else} + +{ --------------------------------------------------------------------- + Implementation section + ---------------------------------------------------------------------} + +uses + DosCalls; + +function LoadLibrary (Name: AnsiString): TLibHandle; +var + ErrPath: array [0..259] of char; + Handle: longint; +begin + if DosLoadModule (@ErrPath, SizeOf (ErrPath), PChar (Name), Handle) <> 0) + then Result := Handle else Result := NilHandle; +end; + +function GetProcedureAddress (Lib: TLibHandle; ProcName: AnsiString): pointer; +var + P: pointer; +begin + if DosQueryProcAddr (Lib, 0, PChar (ProcName), @P) = 0 then Result := P + else Result := nil; +end; + +function UnloadLibrary (Lib: TLibHandle): boolean; +begin + Result := DosFreeModule (Lib) = 0; +end; + +{$endif} + +{ + $Log$ + Revision 1.1 2000-08-23 21:04:55 hajny + + OS/2 implementation + + Revision 1.1 2000/08/18 19:15:34 michael + + Implemented loading of dynamical libraries + +}