Voraussetzungen
Bevor Sie die Anwendung binden können, müssen Sie alle benötigten Quellprogramme und Objektdateien in Ihr Projekt aufnehmen und die Binderoptionen einstellen, siehe unten.
Mit openUTM werden die Dateien mainutm.c (wenn keine C++-Programme einzubinden sind) und mainutm.cpp (wenn C++-Programme einzubinden sind) ausgeliefert. Diese Sourcen müssen übersetzt und die entstandenen Objekte mit in die Anwendung eingebunden werden.
Wurde mit dem openUTM-Dienstprogramm KDCMMOD eine Source für ein anwendungsspezifisches Meldungsmodul erzeugt, so muss diese ebenfalls übersetzt und das so entstandene Objekt in die Anwendung eingebunden werden.
Zu den benötigten Quellprogrammen gehört auch die ROOT-Tabellen-Source, die Sie auf jeden Fall vor dem Binden mit KDCDEF erzeugen müssen. Es wird empfohlen, alle Quellprogramme einschließlich der ROOT-Tabellen-Source im Projektverzeichnis abzulegen.
Quellprogramme und Objektdateien in das Projekt aufnehmen
Öffnen Sie Ihr Projekt.
Fügen Sie die Quellprogramme wie folgt in Ihr Projekt ein:
Klicken Sie in der Menüleiste auf Project und klicken Sie auf Add Existing Item... Damit wird das Fenster Add Existing Item geöffnet.
Wählen Sie bei Files of Type den Punkt Visual C++-Files (.c;.cpp;.cxx;.tli;.h;.tlh;.rc).
Navigieren Sie - falls noch nötig - in das Projektverzeichnis:
Markieren Sie dort Folgendes:
Die mit KDCDEF erzeugte ROOT-Tabellen-Source, im Beispiel
proot.c.Alle selbsterstellten Quellprogramme, die mit eingebunden werden sollen. Quellprogramme, die Sie innerhalb Ihres Projekts mit dem Visual Studio erstellt haben, sind automatisch im Projekt enthalten und brauchen nicht mehr markiert zu werden.
Klicken Sie Add. Damit haben Sie die Quellprogramme in das Projekt aufgenommen.
Sie können bei umfangreichen Projekten auch einzelne Quellprogramme schon vorher übersetzen (Build - Compile ...) und dann stattdessen die Objektdateien hinzufügen wie unten beschrieben.
Fügen Sie auf analoge Weise die UTM-Objektdateien zu Ihrem Projekt hinzu:
Klicken Sie in der Menüleiste auf Project und klicken Sie auf Add Existing Item... Damit wird das Fenster Add Existing Item geöffnet.
UTM-Objektdateien hinzufügen:
Wählen Sie bei Files of Type den Punkt All Files (*.*).
Navigieren Sie in das Verzeichnis utmpfad\sysund markieren folgende Dateien:Entweder, wenn keine C++-Programme enthalten sind,
mainutm.objbzw. das aufmainutm.cbasierende Objekt.
oder, wenn C++-Programme enthalten sind,
mainutmCC.objbzw. das aufmainutm.cppbasierende Objekt.mainutm.obj/mainutm.cbzw.mainutmCC.obj/mainutm.cppenthalten die Main-Funktion der Anwendung.
Fügen Sie - falls vorhanden - das anwendungsspezifische Meldungsmodul hinzu - dies muss aber nicht in utmpfad
\sysstehen.Klicken Sie jetzt auf Add. Damit haben Sie die UTM-Objektdateien eingefügt.
Weitere Objektdateien hinzufügen:
Falls Sie schon Programme übersetzt haben, dann wiederholen Sie die Schritte a) bis c) aus 3. für die zugehörigen Objektdateien.
Dateien anzeigen
Sie können sich jederzeit alle in Ihrem Projekt enthaltenen Dateien anzeigen lassen, indem Sie im Navigationsbereich auf Solution Explorer klicken. Im Arbeitsfenster können Sie z.B. auch Quellprogramme per Doppelklick öffnen und anschließend editieren.
Binderoptionen einstellen
Vor jedem Binden einer Anwendung müssen Sie die Binderoptionen einstellen.
Öffnen Sie über die Menüleiste Project - Properties das Fenster utmwork Property Pages des Projektes (utmproject).
Wählen Sie im Navigationsbereich Configuration Properties - Linker.
Klicken Sie unter Linker auf General und tragen Sie bei Output File den Namen
utmwork.exeein.utmwork.exeist der Name des gebundenen Workprozesses, dieser Name ist nicht frei wählbar.Klicken Sie unter Linker auf Input und tragen bei Additional Dependencies die UTM-Bibliothek
libwork.libein. Diese Bibliothek muss vor allen anderen Bibliotheken stehen.Falls Sie die XATMI-Schnittstelle oder Datenbanken verwenden, müssen Sie jeweils noch folgende Bibliotheken einfügen:
Für XATMI die Bibliothek
libxtclt.lib.Die Datenbank-Bibliothek(en). Welche Bibliothek(en) angegeben werden müssen, entnehmen Sie bitte der Dokumentation für die jeweilige Datenbank.
Klicken Sie jetzt OK. Damit sind Ihre gewählten Binderoptionen gültig.
Anwendungsprogramm binden
Öffnen Sie Ihr Projekt und wählen Sie für das Zielsystem x64 für ein 64-Bit-Programm aus.
Wählen Sie in der Menüleiste den Punkt Build und stellen den Cursor auf den Punkt Build utmwork, siehe Bildausschnitt:
Sobald Sie den Punkt anklicken, werden Ihre Programme übersetzt und Ihre Anwendung gebunden.
Meldungen beim Binden
Beim Binden erhalten Sie die Meldungen LNK4075 und LNK4056. Diese Meldungen können Sie ignorieren; die Meldung LNK4056 entsteht deshalb, weil die Anwendungsprogramme source-kompatibel zu Unix- und Linux-Systemen sind.
Wenn Sie die exit()-Funktion in einem Start-Exit verwenden, dann erhalten Sie noch die Meldung LNK4006. Ursache dafür ist, dass die exit()-Funktion durch die UTM-Bibliothek libwork.lib und nicht wie üblich durch eine Windows-Bibliothek abgehandelt wird. Dies ist einer der Gründe, warum libwork.lib immer an erster Stelle (s.o.) stehen muss.
Ergebnis des Binderlaufs
Am Ende des Binderlaufs wird das Anwendungsprogramm utmwork.exe in Ihrem Projektverzeichnis abgelegt. Da der Mainprozess von openUTM das Anwendungsprogramm immer unter diesem Namen sucht, dürfen Sie utmwork.exe nicht umbenennen.


