Announcement

Collapse
No announcement yet.

Wie einfache grafische Oberfläche machen (Probleme mit Library)?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Wie einfache grafische Oberfläche machen (Probleme mit Library)?

    Hallo allerseits,
    Mit der IGEL-Grafik von Ulrich Kaiser konnte ich unter MS-VC++ 6.0
    ganz einfach (ohne irgend etwas von Listener usw. zu verstehen)
    grafisch arbeiten.
    Leider bekomme ich dies mit MS Visual Studio 2005 nicht mehr hin (wenn
    ich ein Projket, das unter MS-VC++ 6.0 funktionierte mit MS Visual
    Studio 2005 öffne (wird dies vorher automatisch umgewandelt), dann
    läuft es nicht mehr, d.h: wenn ich mache (oder ein neues Projekt erstelle)
    Erstellen --> Projektmappe neu erstellen
    dann kommt folgende Fehlermeldung:
    Fehler 1 fatal error LNK1104: Datei "libci.lib" kann nicht
    geöffnet werden. demoGrafik1
    Dann habe ich folgendes gemacht:

    1)
    a) Ich habe in den obersten Ordner meines Projektverzeichnisses kopiert:
    libci.lib
    Dann kam die Fehlermeldung:
    LIBC.LIB
    kann nicht geöffnet werden.

    b)
    Dann habe ich in den obersten Ordner meines Projketverzueichnisses zusätzlich noch kopiert:
    libc.lib
    Dann kam die Fehlermeldung:
    Fehler 1 error LNK2005: ___initstdio ist bereits in LIBC.lib(_file.obj) definiert. LIBCMTD.lib

    2)
    ich habe die folgenden Headereinträge
    # include <stdio.h>
    # include "Igel.h"
    #include <stdlib.h>
    #include <time.h>

    ersetzt durch:
    # include <cstdio>
    # include "Igel.h"
    #include <cstdlib>
    #include <ctime>


    3)
    Was muss ich machen, damit mein Programm läuft?

    4)
    Gibt es außer dem Kopieren der Libraries in den obersten Ordner meines Projketverzueichnisses, noch einen andere Möglichkeit mein Projekt zum Laufen zu bringen (vielleicht eine Einstellung ändern?)


    mfg
    Ernst




    -------------------------BESCHREIBUNG -------------------------
    Mit der Grafik-Programmierumgebung - kurz IGEL genannt - aus dem
    Buch "C/C++" von Ulrich Kaiser (ISBN 3-934358-03-9, Verlag: Galileo
    Press), kann man leicht, ohne großen Aufwand, kleine Grafikprogramme
    erstellen.

    Mit MS-VC++ 6.0 erstellt man dazu erst ein leeres Projekt:
    Datei --> neu ---> Projekte ---> Win 32 Anwendung ---> Projektname
    (z.B. "demoGrafik1" eingeben ---> ein leeres Projekt.
    Dann kopiert man (außerhalb der Visual C++ Entwicklungsumgebung) mit
    dem Explorer die 3 Dateien (IGEL.h, IGEL1.obj, IGEL2.obj) der CD des
    Buchs in den automatisch angelegten Ordner hier: "demoGrafik1" des
    Projekts.
    In der Visual C++ Entwicklungsumgebung macht man folgendes:
    1) Datei ---> neu ---> Dateien ---> C++-Quellcodedatei Dateiname z.B.
    "zeichnung" eingeben"
    2) Im linken Fenster geht man auf den Reiter "Dateien" (nicht auf
    "Klassen")
    Dann geht man jeweils mit der rechten Maustaste auf folgende
    Ordnersymbole:
    Quellcodedateien, Header-Dateien, Ressourcedateien
    a) Header-Dateien ---> rechte Maustaste ---> Dateien zu Ordner
    hinzufügen --- > IGEL.h
    b) Ressourcedateien ---> rechte Maustaste ---> Dateien zu Ordner
    hinzufügen (Wichtig: alle Dateien anzeigen lassen) --- > IGEL1.obj,
    IGEL2.obj

    Die Datei zeichnung.cpp muß wie folgt aufgebaut sein:
    --------------------------------------
    #include <stdio.h>
    #include <stdlib.h>
    #include "Igel.h"

    void vorher(){
    }

    void zeichnung(){
    }

    void nachher(){
    }
    --------------------------------------

    In die Funktion "vorher" können z.B. mit scanf sämtliche
    erforderlichen Eingaben gemacht werden, die man für das Grafikprogramm
    benötigt. In die Funktion "vorher" muss die Anweisung set_windowpos
    (siehe unten) vorkommen.

    In die Funktion zeichnung schreibt man sämtliche Funktionen, die eine
    Grafikausgabe haben.
    In die Funktion "nachher" muß vorerst keine Anweisung drinstehen.

    Das IGEL zugrunde gelegte Koordinatensystem ist gekennzeichnet durch
    den Koordinatenursprung O(0|0) links oben im Zeichenbereich.
    Die y-Achse geht nach unten, die x-Achse nach rechts.
    Ein Koordinatenpunkt entspricht genau einem Pixel.

    Anweisungen von IGEL:
    void set_windowpos(int x, int y, int breite, int höhe)
    Das Grafikfenster wird an der Bildschirmposition mit den Koordinaten
    x, y beginnend dargestellt.
    Diese Anweisung muss in der Funktion "vorher" aufgerufen werden.

    Farben:
    Für Farben kann man selbstsprechende Konstanten oder genauso auch eine
    Zahl verwenden:
    SCHWARZ 0
    WEISS 1
    ROT 2
    GELB 3
    GRUEN 4
    BLAU 5
    GRAU 6
    BRAUN 7

    void pixel (int x, int y, int farbe)
    Schreibt ein Pixel mit der entsprechenden Farbe an den Punkt (x,y).

    void moveto(int x, int y)
    void lineto(int x, int y, int farbe)
    Mit moveto bewegt man einen fiktiven Kurosr an den Punkt (x,y). Mit
    lineto wird dann von dort aus zu dem in lineto angegebenen Punkt mit
    der entsprechenden Farbe eine Linie gezogen.

    void rectangle (int x1, int y1, int x2, int y2,
    int rahmenfarbe, int fuellfarbe)
    Damit wird ein Rechteck mit linken oberen Eck (x1, y1), dem rechten
    unteren Eck (x2, y2) und der entsprechenden Rahmen- und Füllfarbe
    gezeichnet.

    void rframe(int x1, int y1, int x2, int y2, int rahmenfarbe)
    Zeichnet nur mit der entsprechenden Rahmenfarbe den Rahmen eines
    Rechtecks.

    void ellipse(int x1, int y1, int x2, int y2,
    int rahmenfarbe, int fuellfarbe)
    Damit wird eine Ellipse in ein fiktives, durch die zwei Eckpunkte (x1,
    y1), (x2, y2) bestimmtes Rechteck, mit der entsprechenden Rahmen- und
    Füllfarbe eingezeichnet.

    void eframe(int x1, int y1, int x2, int y2, int rahmenfarbe)
    Zeichnet nur mit der entsprechenden Rahmenfarbe den Rahmen einer
    Ellipse.

    void text(int x, int y, int groesse, int farbe,
    int mode, char *fmt)
    Gibt Text ab dem Punkt (x,y) mit der entsprechenden Größe, Farbe und
    Modus (DECKEND, NICHT_DECKEND) aus. char *fmt ist die Parameterliste
    wie bei printf.

    Beispiel:
    int zahl = 123;
    text(100, 200, 10, SCHWARZ, DECKEND, "Ergebnis %d", zahl);


    void textbox(int x1, int y1, int x2, int y2, int s, int tf,
    int rf, int ff, int mode, char *fmt)
    Die Textausgabe findet nur in dem entsprechenden Rechteck statt.
    Darüber hinausreichender Text wird abgeschnitten. Der Text wird mit
    der Textgröße s, der Textfarbe tf, der Randfarbe rf, der Füfffarbe ff
    und dem Modus mode ausgegeben. char *fmt ist die Parameterliste wie
    bei printf.

    Beispiel:
    int zahl = 10;
    textbox(10, 10, 200, 30, 10, SCHWARZ, GRAU, GELB, DECKEND,
    "Wert %d", zahl);

    Um Grafikprogramme bis zu einem bestimmten Grad interaktiv gestalten
    zu können, gibt es noch Funktionen zur Abfrage der Maus.
    Es gibt einige symbolische Konstanten, mit denen der betätigte
    Mausbutton zurückgemeldet wird:
    MBTN_LEFT 1
    MBTN_MIDDLE 2
    MBTN_RIGHT 3
    MBTN_SHIFTLEFT 4
    MBTN_SHIFTMIDDLE 5
    MBTN_SHIFTRIGHT 6

    int mouseclick(int *x, int *y)
    Wartet auf einen Mausklick und liefert die die Koordinaten in den
    Koordinaten x und y zurück.
    Die Art des Mausklicks wird im Returnwert zurückgeliefert.

    int checkmouse()
    Prüft, ohne zu warten, ob die Maus geklickt wurde und gibt, falls dies
    der Fall war, den zugehörigen Mausklick (symbolische Konstante)
    zurück. Wurde die Maus nicht betätigt, dann ist der
    Returnwert 0.

    void wait(int millisekunden)
    Wartet die vorgegebene Zeit in Millisekunden und dient dazu, eine
    Computergrafik zu verlangsamen, damit man mit dem Auge folgen kann.

  • #2
    Auch hallo,

    ein Beispiel, wie man Bibliotheken mit VS 2005 einbindet: Link zur pdf-Datei

    Doppelpostings sind übrigens nicht gerne gesehen: http://www.c-plusplus.de/forum/viewt...s-1690803.html
    MfG
    Cheat-Sheets for Developers / Programming Quotes

    Comment


    • #3
      Du hast doch die Antwort schon
      Christian

      Comment


      • #4
        Originally posted by Markus Lahr View Post
        Auch hallo,

        ein Beispiel, wie man Bibliotheken mit VS 2005 einbindet: Link zur pdf-Datei

        Doppelpostings sind übrigens nicht gerne gesehen: http://www.c-plusplus.de/forum/viewt...s-1690803.html
        ------------------------------
        Danke für den Link,
        ich habe mit Projekt --> Eigenschaften eingegeben:
        "C:\Programme\Microsoft Visual Studio\VC98\libci.lib "C:\Programme\Microsoft Visual Studio\VC98\libc.lib

        Dann kommt aber nach dem Kompilieren mit
        Projektmappe neu erstellen
        die Fehlermeldung:

        Fehler 1 fatal error LNK1104: Datei "C:\Programme\Microsoft Visual Studio\VC98\libci.lib C:\Programme\Microsoft.obj" kann nicht geöffnet werden. mytest1

        Was mache ich falsch?

        carlox

        Comment


        • #5
          Hallo nochmal,

          gibt es die Dateien zum Buch irgendwo zum Herunterladen oder muss man Besitzer des genannten Buchs sein ?
          Aber vielleicht sollte man das Projekt von Grund auf neu anlegen (Datei->Neu->Projekt), die Dateien kreieren und mit den passenden Inhalten versehen und dann die passenden Bibliotheken und Headerdateien nach Anleitung wie im Link eben einbinden.
          MfG
          Cheat-Sheets for Developers / Programming Quotes

          Comment


          • #6
            Originally posted by Markus Lahr View Post
            Hallo nochmal,

            gibt es die Dateien zum Buch irgendwo zum Herunterladen oder muss man Besitzer des genannten Buchs sein ?
            Aber vielleicht sollte man das Projekt von Grund auf neu anlegen (Datei->Neu->Projekt), die Dateien kreieren und mit den passenden Inhalten versehen und dann die passenden Bibliotheken und Headerdateien nach Anleitung wie im Link eben einbinden.
            ---------------------------------------------------------------------------
            Danke für die Hilfe,
            1)
            Die Dateien zu meinem Projekt kannst du downloaden unter:
            (ich habe sie dort für eine kurze Zeit hinkopiert)
            http://www.kapitalismus-modell.de/tempdownload.html

            2)
            Ich habe auch schon
            Datei->Neu->Projekt
            gemacht.
            Hat aber nichts genützt.

            3)
            Kannst du mir sagen, warum es bei mir nicht klappt?


            mfg
            carlox

            Comment


            • #7


              Wenn du willst das man dir hilft, solltest du dafür sorgen, dass der Download funktioniert
              Zuletzt editiert von Christian Marquardt; 28.03.2010, 17:12.
              Christian

              Comment


              • #8
                Originally posted by Christian Marquardt View Post
                [ATTACH]869[/ATTACH]

                Wenn du willst das man dir hilft, solltest du dafür sorgen, dass der Download funktioniert
                --------------------------------------------
                Er funktioniert, meine Dateien lassen sich downloaden:
                Anleitung:
                a)
                Rufe meinen Link auf durch Doppelklick
                b)
                Gehe mit der rechten Maustaste auf die gewünschte Datei, die du downloaden willst
                ---> Ziel speichern unter --> gib den Platz auf deine Festplatte an.


                mfg
                carlox

                Comment


                • #9
                  Wenn dir dort

                  http://www.c-plusplus.de/forum/viewt...s-1690803.html

                  ebenfalls gesagt wird, dass der Download nicht funktioniert und hier auch, sind die anderen schuld??

                  Da kommt ein 404er. Das ist dein Fehler. Die Dateien können nicht downgeloaded werden, weil sie nicht da sind; jedenfalls für die Öffentlichkeit nicht. Auch den Screenshot habe ich manipuliert???




                  "Da ist ein Geisterfahrer unterwegs....Einer??? Hunderte"

                  *kopfschüttel*

                  Danke auch für die Anleitung, wie ein Download gemacht wird.
                  Christian

                  Comment

                  Working...
                  X