WIR einfache grafische Oberfläche machen?
-
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
Erstellen --> Projektmappe neu erstellen
dann kommt folgende Fehlermeldung:
Fehler 1 fatal error LNK1104: Datei "libci.lib" kann nicht
geöffnet werden. demoGrafik1-
Was muss ich machen, damit ich diese einfache Grafikoberfläche von
Ulrich Kaiser auch unter MS Visual Studio 2005 nutzen kann ? -
Wenn dies prinzipiell unmöglich sein sollte:
Kann mir jemand alternativ dazu eine genauso einfache Grafikoberfläche
benennen (zum Download) ?
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:- Datei ---> neu ---> Dateien ---> C++-Quellcodedatei Dateiname z.B.
"zeichnung" eingeben" - 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 7void 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 6int 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.
-
-
GastErnst schrieb:
dann kommt folgende Fehlermeldung:
Fehler 1 fatal error LNK1104: Datei "libci.lib" kann nicht
geöffnet werden. demoGrafik1Wie die Fehlermeldung schon sagt, musst du die "libci.lib" Bibliothek mit linken lassen.
Damit diese mitgelinkt werden kann, muss sie sich natürlich in einem Verzeichnis befinden das von VisualStudio durchsucht wird, z.B. das Verzeichnis des angelegten Projekts.
-
Google liefert zu libci.lib ja auch nur 129000 Treffer ...
Du musst nur ein paar Namen von Headerdateien ändern.
http://msdn.microsoft.com/de-de/library/8h8eh904(VS.80).aspx
Und ganz nebenbei, wer offenbar schon ein paar Jahre mit C++ arbeitet, könnte sich vielleicht ein wenig mit den Grundlagen auseinander setzen.
-
JustSomeCoder schrieb:
GastErnst schrieb:
dann kommt folgende Fehlermeldung:
Fehler 1 fatal error LNK1104: Datei "libci.lib" kann nicht
geöffnet werden. demoGrafik1Wie die Fehlermeldung schon sagt, musst du die "libci.lib" Bibliothek mit linken lassen.
Damit diese mitgelinkt werden kann, muss sie sich natürlich in einem Verzeichnis befinden das von VisualStudio durchsucht wird, z.B. das Verzeichnis des angelegten Projekts.
----------------------------------------
Danke für den Tipp.
1)
Ich habe in den obersten Ordner meines Projketverzueichnisses kopiert:
libci.lib
Dann kam die Fehlermeldung:
LIBC.LIB
kann nicht geöffnet werden.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.libWas muss ich machen, damit mein Programm läuft?
Gibt es außer dem Kopieren des von dir vorgeschlagenen Libraries in den obersten Ordner meines Projketverzueichnisses, noch einen andere Möglichkeit mein Projekt zum Laufen zu bringen (vielleicht eine Einstellung ändern?)
mfg
Ernst
-
[quote="nn"]Google liefert zu libci.lib ja auch nur 129000 Treffer ...
Du musst nur ein paar Namen von Headerdateien ändern.
http://msdn.microsoft.com/de-de/library/8h8eh904(VS.80).aspx
-------------------------------------
Danke für den Tipp,
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>Trotzdem läuft das Projekt nicht.
Was muss ich noch machen?mfg
Ernst
-
[quote="GastErnst"]
nn schrieb:
Google liefert zu libci.lib ja auch nur 129000
Was muss ich noch machen?Wie schon gesagt, Grundlagen lernen. Die *.lib Dateien ins Projektverzeichnis kopieren ist der völlig falsche Weg. Die gehören da hin wo so sie bei der Installation hingekommen sind.
Es gibt mehrere verschiedene Versionen der Laufzeitbibliothek. Release/Debug, Statisch/Dynamisch und früher Single Thread/Multithread. Die Fehlermeldung mit dem libcmtd.lib deutetet darauf hin, das verschiedene Teile des Projekts mit unterschiedlichen Projekteinstellungen übersetzt werden, das geht natürlich nicht gut.
-
Danke für deine Hilfe,
ich habe alle Dateien des Projekts zum Download bereitgestellt:http://www.kapitalismus-modell.de/tempdownload.html
Bekommst du das Projekt zum Laufen, oder ist das wegen der verschiedenen Versionen unmöglich?
mfg
Ernst
-
Du hast kein Projekt zum Download angeboten!
Es sind lediglich Dateien die sich nicht mal Downloaden lassen.
Auch wenn es für Dich jetzt etwas blöd ist.
Wir standen/stehen hier immer auf dem Standpunkt das man die Arbeit schon selbst machen muss.
Wenn Du etwas möchtest ohne Programmieren zu lernen erstelle eine Thread im Projekte Forum und bezahle dafür oder lerne es selbst. Beim Lernen bekommst Du hier auch Hilfe. Die Antwort, wie es geht, hast Du ja schon.
-
Unix-Tom schrieb:
Du hast kein Projekt zum Download angeboten!
Es sind lediglich Dateien die sich nicht mal Downloaden lassen.
Auch wenn es für Dich jetzt etwas blöd ist.
Wir standen/stehen hier immer auf dem Standpunkt das man die Arbeit schon selbst machen muss.
Wenn Du etwas möchtest ohne Programmieren zu lernen erstelle eine Thread im Projekte Forum und bezahle dafür oder lerne es selbst. Beim Lernen bekommst Du hier auch Hilfe. Die Antwort, wie es geht, hast Du ja schon.----------------
-
Habe kein Projekt zum Download angeboten, weil ich viele Projekte mit vielen Optionen ausprobiert habe und keines hat funktioniert.
Deswegen würde mich interessieren, ob jemand von euch mit diesen Dateien von mir ein Projekt erzeugen kann (Anleitung siehe mein 1. Posting). -
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.
Ich will in diesem Thread _nicht_ programmieren lernen d.h. Fragen zu der Programmiersprache C++ lernen.
Ich will nur mit einigen Dingen der _Entwicklungsumgebung_ MS Visual Studio klarkommen....mfg
carlox
-