Jedes Objekt besteht aus Definitions- und Implementationsmodul. Der Linker erzeugt daraus verschiedene andere Dateien. Damit er erkennen kann, um welche Art Objekt es sich handelt, muss an den Modulnamen jeweils eine bestimmte Endung angefügt werden:
Library: | Lib |
Device: | Dev |
Resource: | Rsrc |
Am einfachsten erklären wir die Namensgebung anhand eines Beispiels. Es soll eine Library namens ,,MyTest`` erzeugt werden. Hierzu werden folgende Dateien benötigt bzw. erzeugt:
Definitionsmodul: | MyTestLib.def |
Implementationsmodul: | MyTestLib.mod |
Schnittstellenmodul: | MyTest.def |
FD-Datei: | MyTest_lib.fd |
Library: | mytest.library |
In das Schnittstellenmodul wird von M2LibLink
ausserdem eine Zeichenkettenkonstante
eingefügt, die nur aus Kleinbuchstaben besteht. In diesem Beispiel:
CONST myTestName = "mytest.library";
Die in die Library einkodierte Resident-Struktur enthält den gleichen Namen sowie eine Identifikations-Zeichenkette mit folgendem Aufbau:
cmsltt Name version.revision (Link-Datum)",cr,lf,0In unserem Beispiel:
"MyTest 33.10 (4 Nov 1990)",cr,lf,0
Die Zeichenkette wird immer mit den Zeichen ASCII.cr, ASCII.lf und dem Nullbyte abgeschlossen.
In der FD-Datei erscheint im Beispiel ,,_MyTestBase`` als Name der Library-Basis.