next up previous
Nächste Seite: Residente Programme Aufwärts: Externe Prozeduren, Libraries Vorherige Seite: Optionale Libraries ohne Implementation

Optionale Libraries mit Implementation

Optionale Libraries werden nicht automatisch geöffnet. Vor der Benutzung irgendwelcher Prozeduren einer solchen Library muss unbedingt getestet werden, dass die Library-Basis ungleich NIL ist!

Dabei sind folgende Punkte zu beachten:

Das Gerüst eines solchen Moduls sieht folgendermassen aus:

DEFINITON MODULE OptLib;
 ...
(*$LargeVars:=FALSE *)
(*$LongAlign:=FALSE *)
VAR
  optLibVersion: INTEGER;   (* Offset = 2 *)
  optLibBase: ...           (* Offset = 4 *)

PROCEDURE ...
  CODE ...
(* beliebige Mischung von CODE und normalen Prozeduren *)

END OptLib.

IMPLEMENTATION MODULE OptLib;
(*$LargeVars:=FALSE *)
 ...

BEGIN
  optLibBase:=OpenLibrary( ... );
  IF optLibBase<>NIL THEN
    optLibVersion:=optLibBase^.Lib.version
  END
CLOSE
  IF optLibBase<>NIL THEN
    CloseLibrary( ... );
    optLibBase:=NIL
  END
END OptLib.


Claudio Nieder 2000-11-12