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.