Nächste Seite: Das Laufzeitsystem LArts Aufwärts: Der Library-Linker (M2LibLink) Vorherige Seite: Resources

## Das Schnittstellen-Modul

Der Library-Linker erzeugt nach der Option ,,`+m``` automatisch aus dem Definitionsmodul ein Schnittstellen-Modul. Der Name des erzeugten Moduls ist der Modulname ohne die spezielle Endung. Aus ,,`MyTestLib``` wird also ,,`MyTest```, die Datei wird als `txt/MyTest.def` angelegt.

`M2LibLink` geht hierbei wie folgt vor:

1. Für Libraries wird ein Library-Kopf erzeugt, z.B.

   > `DEFINITION MODULE MyTest{"mytest.library",33};`

   Für Devices und Resources erstellt der Library-Linker ein implementationsloses Modul, z.B.

             (*$ Implementation:=FALSE *)
             DEFINITION MODULE MyTest;

2. Es wird die Deklaration einer Zeichenkettenkonstanten eingefügt, die den Namen des Objektes angibt.

3. Die Definitionen der Pflichtprozeduren werden gelöscht.

4. An alle anderen Prozeduren wird eine CODE-Anweisung angefügt. Die Offsets vermindern sich dabei fortlaufend um 6, deshalb ist es sehr wichtig, dass die Pflichtprozeduren ganz am Anfang und in der richtigen Reihenfolge stehen.

5. Der Modulname am Schluss wird geändert.

Nach dieser automatischen Bearbeitung sollte das Schnittstellen-Modul sofort übersetzbar sein. Es kann jedoch zunächst nachbearbeitet werden, um z.B. nicht-öffentliche Deklarationen zu löschen, die Prozeduren alphabetisch zu sortieren oder den in Abschnitt 4.5.7 beschriebenen ,,Trick`` mit den Register-Parametern anzuwenden.