next up previous
Nächste Seite: Sonstige Konventionen Aufwärts: Der Library-Linker (M2LibLink) Vorherige Seite: Aufruf und Optionen

Namens-Konventionen

Für ein korrektes Funktionieren des Library-Linkers müssen vom Programmierer bestimmte Konventionen bei der Namensgebung eingehalten werden.

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,0
In 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.


\begin{note}
Der Modulname des Schnittstellenmoduls ist immer der Name des Modul...
...t MyTest.def} zweimal vorhanden, bzw.\ die alte wird gel\uml {o}scht.
\end{note}


next up previous
Nächste Seite: Sonstige Konventionen Aufwärts: Der Library-Linker (M2LibLink) Vorherige Seite: Aufruf und Optionen
Claudio Nieder 2000-11-12