Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

Anwendung übersetzen und binden (Windows-Systeme)

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

  1. Öffnen Sie Ihr Projekt.

  2. Fügen Sie die Quellprogramme wie folgt in Ihr Projekt ein:

    1. Klicken Sie in der Menüleiste auf Project und klicken Sie auf Add Existing Item... Damit wird das Fenster Add Existing Item geöffnet.

    2. 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.

    3. 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.

  3. Fügen Sie auf analoge Weise die UTM-Objektdateien zu Ihrem Projekt hinzu:

    1. Klicken Sie in der Menüleiste auf Project und klicken Sie auf Add Existing Item... Damit wird das Fenster Add Existing Item geöffnet.

    2. UTM-Objektdateien hinzufügen:
      Wählen Sie bei Files of Type den Punkt All Files (*.*).
      Navigieren Sie in das Verzeichnis utmpfad\sys und markieren folgende Dateien:

      • Entweder, wenn keine C++-Programme enthalten sind, mainutm.obj bzw. das auf mainutm.c basierende Objekt.

      • oder, wenn C++-Programme enthalten sind, mainutmCC.obj bzw. das auf mainutm.cpp basierende Objekt.

        mainutm.obj/mainutm.c bzw. mainutmCC.obj/mainutm.cpp enthalten die Main-Funktion der Anwendung.

    3. Fügen Sie - falls vorhanden - das anwendungsspezifische Meldungsmodul hinzu - dies muss aber nicht in utmpfad\sys stehen.

    4. Klicken Sie jetzt auf Add. Damit haben Sie die UTM-Objektdateien eingefügt.

  4. 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.

  1. Öffnen Sie über die Menüleiste Project - Properties das Fenster utmwork Property Pages des Projektes (utmproject).

  2. Wählen Sie im Navigationsbereich Configuration Properties - Linker.

  3. Klicken Sie unter Linker auf General und tragen Sie bei Output File den Namen utmwork.exe ein. utmwork.exe ist der Name des gebundenen Workprozesses, dieser Name ist nicht frei wählbar.

  4. Klicken Sie unter Linker auf Input und tragen bei Additional Dependencies die UTM-Bibliothek libwork.lib ein. 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.

  5. Klicken Sie jetzt OK. Damit sind Ihre gewählten Binderoptionen gültig.

Anwendungsprogramm binden

  1. Öffnen Sie Ihr Projekt und wählen Sie für das Zielsystem x64 für ein 64-Bit-Programm aus.

  2. 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.