• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

grafische oberfläche mit c++

Myribo

New member
heho ihrs :)

ich hoffe mal, dass ich das richtige forum gefunden habe - ich habe nämlich mal eine kurze frage zu c++.

ich habe mir mal vor kurzem mal microsofts "Visual C++ 2005 Express Edition" heruntergeladen. express edition deswegen, weil es sich um eine etwas abgespeckte, jedoch kostenlose version handelt. nach einigem rumprobieren und einem webtutorial später stand auch mein erstes kleines programmchen und ich habe auch vor mich mit c++ weiter zu beschäftigen und weiter zu lernen ;)

jedoch erstelle ich im moment (nur) anwendungen in der eingabeaufforderung.
meine frage: wie kann ich denn grafische benutzeroberflächen, sprich richtige programme mit buttons usw., programmieren bzw einfügen? oder ist das für den anfang noch zu kompliziert? leider spuckt mir google auch nichts passendes aus.

wäre nett wenn mir jemand helfen würde, da ich mich für c++ echt interessiere.:)

lg myribo ;)
 
Also die Express Edition von C++ ist zwar kostenlos und man kann damit auch kommerzielle Sachen schreiben, allerdings ist sie stark limitiert - sprich es fehlen die Templates, DLLs und Sourcen, um z.B. MFC Applikationen zu schreiben, dies ist der Vollversion vorbehalten. Die Expressversionen zielen darauf ab, die Entwickler "anzufixen" und die .NET Platform zu pushen, denn das Einzigste, was neben Kommandozeile noch unterstützt wird, sind .NET Applikationen.

Willl man richtige Programme schreiben, so muss man auf alternative GUI-Frameworks umsteigen. Zu erwähnen wären hier hauptsächlich QT und wxWidgets. Beide bieten eine ganze Armada an Funktionen, Klassen und Bibliotheken, bei beiden musst Du einen externen GUI Builder verwenden und bei beiden ist etwas Tüftelarbeit gefragt, um sie mit den Express Versionen zum Laufen zu bringen, allerdings bieten sie ebenfalls beide eine gewisse Plattformunabhängigkeit. Bei QT nehme ich es an, dass es machbar ist, wxWidgets habe ich bereits erfolgreich in Visual C++ Express am Laufen gehabt (dann bin ich auf Linux umgestiegen).

Ich würde also vorschlagen, dass Du Dir eines von beiden rausguckst und Du damit dann Deine Oberflächen baust. Verwendest Du dann ausschließlich Funktionen und Klassen der jeweiligen GUI-Bibliotheken, dann ist die Portierung auf ein anderes Betriebssystem theoretisch nur ein Recompile entfernt.
 
Also die Express Edition von C++ ist zwar kostenlos und man kann damit auch kommerzielle Sachen schreiben, allerdings ist sie stark limitiert - sprich es fehlen die Templates, DLLs und Sourcen, um z.B. MFC Applikationen zu schreiben, dies ist der Vollversion vorbehalten. Die Expressversionen zielen darauf ab, die Entwickler "anzufixen" und die .NET Platform zu pushen, denn das Einzigste, was neben Kommandozeile noch unterstützt wird, sind .NET Applikationen.

Willl man richtige Programme schreiben, so muss man auf alternative GUI-Frameworks umsteigen. Zu erwähnen wären hier hauptsächlich QT und wxWidgets. Beide bieten eine ganze Armada an Funktionen, Klassen und Bibliotheken, bei beiden musst Du einen externen GUI Builder verwenden und bei beiden ist etwas Tüftelarbeit gefragt, um sie mit den Express Versionen zum Laufen zu bringen, allerdings bieten sie ebenfalls beide eine gewisse Plattformunabhängigkeit. Bei QT nehme ich es an, dass es machbar ist, wxWidgets habe ich bereits erfolgreich in Visual C++ Express am Laufen gehabt (dann bin ich auf Linux umgestiegen).

Ich würde also vorschlagen, dass Du Dir eines von beiden rausguckst und Du damit dann Deine Oberflächen baust. Verwendest Du dann ausschließlich Funktionen und Klassen der jeweiligen GUI-Bibliotheken, dann ist die Portierung auf ein anderes Betriebssystem theoretisch nur ein Recompile entfernt.

heho albu :):)

ui - schwerer stoff...
qt hatte ich mir vorher schon einmal geladen und ein wenig damit herumexperimentiert. auch wxWidgets hab ich mir mal geladen. allerdings macht mir der einbau schwer zu schaffen. :eek: ich denke es wäre angebracht mich erst mal wirklich richtig mit c++ vertraut zu machen... aber trotzdem danke für deine antwort dachte nicht dass das so schwierig ist.^^

allerdings hab ich gleich noch eine kleine frage...
ich möchte mit einem programm mehrere dateien anlegen, dessen namen alle nach einem muster (for-schleife) aufgebaut sind. sprich: dateiname=string+int+string
das ganze sieht bei mir so aus:

Code:
.....
datei.open("datei"<<i<<".txt",ios::out);
.....

das ist irgendwie nicht richtig meint der compiler. wie füge ich denn strings und andere variablen aneinander. umkonvertieren? andere operatoren??

lg und thx :)
mYr!b0
 
Also die << und >> Operatoren funktionieren nur bei Streams.
Wenn Du keine String Klasse hast, die den "+"-Operator implementiert, dann bleibt eigentlich nur noch sprintf.

Mit einer String-Klasse (ist jetzt mal fiktiv, ich hab jetzt nicht nachgeschaut, ob es eine solche in welcher Bibliothek gibt, die genauso funktioniert) könnte das so aussehen:
String ("datei") + String (i) + String (".txt")
Jedes Fragment würde dann explizit zu einem temporären String Objekt umgewandelt und diese dann aneinandergepappt. Das so entstandene Ergebnis-Objekt könnte dann in die open Funktion gereicht werden (gfs. ist vorher dann aber nochmals ein Cast notwendig).
Mit sprintf würde das so aussehen:
sprintf (name, "datei%d.txt", i);
datei.open (name...

Strings in C und C++ sind schon etwas komplizierter als in Java oder gar PHP, in C++ kann man allerdings auf entsprechende Klassen bauen, die einem ein bißchen was von dieser ständigen Platzreserviererei für Zeichenketten abnimmt.
 
Zurück
Oben