Hallo!
Bin noch relativ neu in c++ und wollte wissen ob es in der standard bibliothek von c++ auch graphic funktionen gibt? hab gehoert, dass borlan compiler graphics.h haben, habe aber visual c++. gibt es moeglichkeiten ne grafik zu proggen bloss mit der standartbiblithek oder zumindest ner bibliothek die alle compiler haben?
Wenn es um Grafik geht, ist SDL[1] eine sehr zu empfehlende Bibliothek, die zumindest grundsätzliche Grafik-, Sound- und Eingabefunktionalität bietet. Eine Alternative (mit der ich allerdings persönlich keine Erfahrung habe) ist Allegro. Das arbeitet wohl auf einer etwas höheren Ebene.
Unter Windows gibt es natürlich noch DirectDraw und Direct3D, die allerdings im Gegensatz zu den oben genannten Libs nicht portabel sind.
Halli Hallo!
Das ist ja alles schoen und gut, hat aber alles mit Bibliotheken und Api’s zu tun. Hat denn standard c++ ueberhaupt keine grafikfunktionen? sie koennen meinetwegen auch kompliziert sein, aber theoretisch muesste man doch alle bibliotheken aus dem standard krams zusammenstellen koennen…
Also die ganzen biblios die ihr mir genannt habt sind doch eigentlich auch mit c++ programmiert oder nicht?
gruss rundell
thx fuer alle antworten
Halli Hallo!
Das ist ja alles schoen und gut, hat aber alles mit Bibliotheken und Api’s zu tun. Hat denn standard c++ ueberhaupt keine grafikfunktionen? sie koennen meinetwegen auch kompliziert sein, aber theoretisch muesste man doch alle bibliotheken aus dem standard krams zusammenstellen koennen…
Also die ganzen biblios die ihr mir genannt habt sind doch eigentlich auch mit c++ programmiert oder nicht?
gruss rundell
thx fuer alle antworten
Ums vorneweg zu sagen: Standard C++ hat KEINE Grafikfunktionen. Standard sachen sind nur Console, also std::string, vector, map usw.
Die mit Abstand einfachste „Bibliothek“ ist die Windows API mit den GDI Funktionen. Wie gesagt, ist nicht der Hammer aber auch nicht mies. Damit kannst schön Texte, Linien usw. malen und wenns dir Spaß macht sogar noch Bildchen einbauen.
Warum hat Standard C++ wohl keine Grafikfunktionen? Ganz einfach, da der Standard Kram Plattformunabhängig ist und Grafik alles andere als Unabhängig ist geht das nunmal nicht. So wirst du immer auf die System-API zugreifen müssen.
Willst du dir dies ersparen und gleich Cross-Platform schreiben (mach ich immer, weil ich jedes System mag ) nimm dir wxWidgets. Es hat ungefähr die selben Funktionen wie die Windows API, funktioniert aber auf Linux, Mac und Windows.
Hab ich was vergessen?
bye,
Christoph
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Das ist ja alles schoen und gut, hat aber alles mit
Bibliotheken und Api’s zu tun. Hat denn standard c++
ueberhaupt keine grafikfunktionen?
Nein. Im Prinzip kann C(++) nichts weiter, als irgendwelche Daten an irgendwelche Stellen im Speicher zu schreiben, explizite Grafikfunktionen gibt es nicht.
Also die ganzen biblios die ihr mir genannt habt sind doch
eigentlich auch mit c++ programmiert oder nicht?
DirectX schon, die restlichen sind in C geschrieben und alle zusammen kümmern sich um die Kommunikation mit diversen Treibern, damit der Anwendungsentwickler das nicht mehr tun muss.
DirectX schon, die restlichen sind in C geschrieben und alle
zusammen kümmern sich um die Kommunikation mit diversen
Treibern, damit der Anwendungsentwickler das nicht mehr tun
muss.
Aber wie ist Direct X denn dann in c++ geschrieben, wenn C++ grafisch ueberhaupt nix kann? Wenn Direct X oder meineteweg auch die in c erstellten bibliotheken funktionen fuer grafik bereitstellen heisst, dass dass die sprache doch auch irgend was haben muss. koennt ihr mir da nicht weiterhelfen? wuerde mir gerne so ne eigene bibliothek basteln.
Gruss rundell32
DirectX schon, die restlichen sind in C geschrieben und alle
zusammen kümmern sich um die Kommunikation mit diversen
Treibern, damit der Anwendungsentwickler das nicht mehr tun
muss.
Aber wie ist Direct X denn dann in c++ geschrieben, wenn C++ grafisch ueberhaupt nix kann? Wenn Direct X oder meineteweg auch die in c erstellten bibliotheken funktionen fuer grafik bereitstellen heisst, dass dass die sprache doch auch irgend was haben muss. koennt ihr mir da nicht weiterhelfen? wuerde mir gerne so ne eigene bibliothek basteln.
Wie wurden denn die Bibliotheken geproggt?
Gruss rundell32
Aber wie ist Direct X denn dann in c++ geschrieben, wenn C++
grafisch ueberhaupt nix kann?
Das stimmt. C++ kann graphisch „nix“, ausser asci-Zeichen
über die Standardausgabe zu schicken.
Wenn Direct X oder meineteweg
auch die in c erstellten bibliotheken funktionen fuer grafik
bereitstellen heisst, dass dass die sprache doch auch irgend
was haben muss. koennt ihr mir da nicht weiterhelfen?
Das Zauberwort heisst „API“. „Application Program Interface“.
Windows liefert hardwarenahe und maschinenabhängige nichtstan-
dard-Programme mit, die Du bei Programmstart laden kannst
(DLL’s, dynamische Bibliotheken). In diesen DLL’s sind
bestimmte Stellen markiert, diese Stellen kannst Du
auslesen und Funktionszeiger diesen DLL-Einsprungpunkten
zuordnen.
Du kannst diese "Bibliotheken auch „fest“ mit Deinem Programm
verbinden, dann heissen sie „statische Bibliotheken“, das
Prinzip ist dasselbe.
Dir stehen jetzt z.B. Grafikfunktionen zur Verfügung,
die auf das Zielsystem zugeschnitten sind. Eine solche
Bibliothek selbst zu schreiben, liegt ausserhalb Deiner
Möglichkeiten.
mir gerne so ne eigene bibliothek basteln.
Was Du machen kannst, ist - eine Bibliothek
sinvoll nutzen. Das ist für den Anfang auch
ganz gut. Wenn Du merkst, dass Dir manche
Dinge nicht reichen, dann bastelst Du eine
„übergeordnete“ Bibliothek auf Basis der
System-Grafikbibliothek.
Danke fuer deine Antwort.
Gibt es denn irgendwo ein Tutorial in dem man lernt die API’s zu benutzen ?
Windows ist aber eigentlich doch auch in c und assembly geschrieben also muesste es doch moeglich sein nicht betriebsystemabhaenige grafiken in c zu proggen. oder wie ist die windows grafik sonst entsatnden?
Tschuldigung dass ich so seltsame fragen stelle
Windows ist aber eigentlich doch auch in c und assembly
geschrieben also muesste es doch moeglich sein nicht
betriebsystemabhaenige grafiken in c zu proggen.
Sicher ist das möglich.
Du solltest nur beachten, dass heutzutage eine
„Linie“ oder ein „Viereck“ vom Prozessor
der Grafikkarte erzeugt wird.