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.