mirror of
				https://gitlab.com/freepascal.org/fpc/source.git
				synced 2025-11-04 05:39:29 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			75 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			75 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
{
 | 
						|
    $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.2  2000-09-29 21:51:00  jonas
 | 
						|
    * fixed compiling error
 | 
						|
 | 
						|
  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
 | 
						|
 | 
						|
}
 |