Mit Hallo grüße ich Euch und falle als Neuling gleich mit mehreren Themen ins Haus:
1: Warum wende ich mich mich an das Forum:
Ich brauche Einstiegshilfe. Mit 73 Jahren möchte ich meine C\C++-Programme, die ich unter kdevelop entwickelt habe, sowohl unter Linux als auch unter XP und Windows 7 ausführen können, bzw. weiterentwickeln. Das soll unter Qt möglich sein. Dazu möchte ich zunächst die Konsole verwenden, bevor ich mich an GUI heran wage. Bei bisherigen Versuchen bin ich jeweils mit SDK 2010.5 gescheitert. Nun habe ich unter XP eine Trivialversion zum Humpeln gebracht:
Listing untitled.cpp:
#include <QtCore/QCoreApplication>//orig
using namespace std;
#include <iostream>;
#include <stdio.h>
int main(int argc, char *argv[])//orig
{//orig
QCoreApplication a(argc, argv);//orig
cout << "1.Programm";
cout << ("\033[2J\n");// clearscreen Bildschirm löschen
printf("\033[2J\n");
printf("\033[31m"); // Schrift rot
return a.exec();
}//orig nach Schließen des Programms: Rückgabewert: -1073741510
//untitled.pro
//#-------------------------------------------------
//#
//# Project created by QtCreator 2011-02-26T15:18:00
//#
//#-------------------------------------------------
//QT += core
//QT -= gui
//TARGET = untitled
//CONFIG += console
//CONFIG -= app_bundle
//TEMPLATE = app
//SOURCES += main.cpp
2.Bin ich hier richtig?:
Laut Literatur enthält C++ doch auch die C-Elemente. Unter kdevelop gelten Steuercode u.a. auch für Farbwechsel und clearscreen (WinAPI?). Warum nicht oder welche unter Qt? Ist das ein Problem von Qt oder C++? Welches Forum wäre dafür zuständig? Ich erhoffe mir Hilfe zur Selbsthilfe. Die Hinweise, sich entsprechende Bücher anzuschaffen bringen nichts. Ich will keine Bibliothek einrichten. Die reichliche Literatur die ich mir bisher vorgenommen habe, beantwortet nicht die trivialsten Einstiegsfragen. - All denen, die raten, zuerst mal bitteschön C++ zu lernen, möchte ich empfehlen, von ihren Lebenspartnern, die mal das Familienauto nehmen möchten, zu fordern, dass diese bitte erst mal eine Autoschlosserlehre machen. Deren Partnerschaft wäre direkt zu Ende-. Selbst wenn meine Editierweise nicht vorbildlich ist, kann ich mir mit kdevelop sehr gut helfen.
3.Aufteilung der Beiträge:
Für Anfänger ist es wirklich mühsam, die richtigen Beiträge zu finden. Jeder benennt willkürlich sein Thema und durch unnütze arrogante Bemerkungen wird weder Hilfe gewährt noch die Übersichtlichkeit erhöht.
Vielmehr steigt der Leseaufwand, der Datenwust wird unübersichtlicher. Kann hier Abhilfe geschaffen werden durch Verschiebung, Umbenennung oder Schaffung spezieller Gruppen? Viele Beiträge würden auch verständlicher, wenn die Listings ausführlicher, d.h. umfassender aufgeführt würden
Sollten hilfreiche Reaktionen erfolgen, bedanke ich mich schon im voraus!
AlterMann
Einstiegshilfe
Hallo im Forum.
zu den Fragen:
1) Im Prinzip brauchst du hier noch kein Qt. Du machst ja nur simple Konsolenausgaben. Die QCoreAPplication wird erst benötigt, wenn du mit Events (also auch SIGNAL/SLOT) arbeitest.
2) Unter 1) setzt du auf die ANSI-Steuercodes. Unter XP musst du dafür extra den ANSI-Treiber laden.
Z.B.: http://www.supportnet.de/listthread/89282
Neuer als XP hat ANSI-Steuercdes komplett verbannt, da funktioniert der Trick nicht mehr - du musst auf WinAPI zurückgreifen.Soll das Programm Plattformunabhängig laufen, musst du dir wohl kleine Wrapper-Funktionen basteln.
Und warum hier oft zu lesen ist "bitte erst C++ lernen", liegt daran, dass Qt auf C++ aufbaut - es ist ja ein C++-Framework. Es verwendet dabei viele fortgeschrittene C++-Techniken (Zeiger, Polymorphie, Ableiten, Templates, usw.). Oft ist hier nicht Qt das Problem, sondern ein mangelndes Grundlagenwissen.
Dazu kommt noch, dass Qt eigene Konzepte einbaut (moc, SIGNAL/SLOT, Properties, etc) und auf Events aufbaut. Da kommen viele zusätzliche, teils für Anfänger nicht leicht nachvollziehbare Probleme dazu. Man kann natürlich neben dem Erlernen der Grundlagen immer wieder mit Qt spielen. Aber komplett ohne Grundlageninteresse gleich mit Qt anfangen endet definitiv in Frust...
Dein Beispiel mit dem Auto ist deshalb auch falsch. Passender wäre wohl, vom Junior zu fordern, erstmal den Führerschein zu machen, bevor er selber fahren darf.
Die Analogie zum Autoschlosser wäre eher die Ausbildung zum Compilerbauer.
3) Das liegt oft daran, dass die Fragesteller nicht wissen, wo das Problem liegt. Deshalb steht eben im Titel nicht "Ich habe einen SegFault wegen eines NULL-Pointers" sondern "Mein Programm stürzt ab".
Und wenn wir Mods dann erstmal anfangen, das selber in die Hand zu nehmen, Listings schöner formatieren, sonstige Fehler ausbessern - das wäre ein echter Fulltime-Job.
Und neue Unterforen einführen macht noch weniger Sinn, da die User jetzt schon oft Probleme haben, ihre Fragen korrekt unter zu bringen. Unter noch spezielleren Gruppen würde die Usability leiden.
zu den Fragen:
1) Im Prinzip brauchst du hier noch kein Qt. Du machst ja nur simple Konsolenausgaben. Die QCoreAPplication wird erst benötigt, wenn du mit Events (also auch SIGNAL/SLOT) arbeitest.
2) Unter 1) setzt du auf die ANSI-Steuercodes. Unter XP musst du dafür extra den ANSI-Treiber laden.
Z.B.: http://www.supportnet.de/listthread/89282
Neuer als XP hat ANSI-Steuercdes komplett verbannt, da funktioniert der Trick nicht mehr - du musst auf WinAPI zurückgreifen.Soll das Programm Plattformunabhängig laufen, musst du dir wohl kleine Wrapper-Funktionen basteln.
Und warum hier oft zu lesen ist "bitte erst C++ lernen", liegt daran, dass Qt auf C++ aufbaut - es ist ja ein C++-Framework. Es verwendet dabei viele fortgeschrittene C++-Techniken (Zeiger, Polymorphie, Ableiten, Templates, usw.). Oft ist hier nicht Qt das Problem, sondern ein mangelndes Grundlagenwissen.
Dazu kommt noch, dass Qt eigene Konzepte einbaut (moc, SIGNAL/SLOT, Properties, etc) und auf Events aufbaut. Da kommen viele zusätzliche, teils für Anfänger nicht leicht nachvollziehbare Probleme dazu. Man kann natürlich neben dem Erlernen der Grundlagen immer wieder mit Qt spielen. Aber komplett ohne Grundlageninteresse gleich mit Qt anfangen endet definitiv in Frust...
Dein Beispiel mit dem Auto ist deshalb auch falsch. Passender wäre wohl, vom Junior zu fordern, erstmal den Führerschein zu machen, bevor er selber fahren darf.
Die Analogie zum Autoschlosser wäre eher die Ausbildung zum Compilerbauer.
3) Das liegt oft daran, dass die Fragesteller nicht wissen, wo das Problem liegt. Deshalb steht eben im Titel nicht "Ich habe einen SegFault wegen eines NULL-Pointers" sondern "Mein Programm stürzt ab".
Und wenn wir Mods dann erstmal anfangen, das selber in die Hand zu nehmen, Listings schöner formatieren, sonstige Fehler ausbessern - das wäre ein echter Fulltime-Job.
Und neue Unterforen einführen macht noch weniger Sinn, da die User jetzt schon oft Probleme haben, ihre Fragen korrekt unter zu bringen. Unter noch spezielleren Gruppen würde die Usability leiden.
Einstiegshilfe
Herzlichen Dank an franzf für die umgehende Beantwortung
Wahrscheinlich hast Du die Antwort genau so "schnell" geschrieben wie ich meine Fragen.
Insofern reicht mir die Antwort nicht ganz:
1. Wenn jeder Rechner mit ansi.sys präpariert werden muß und es für Window 7 nicht einsetzbar ist, sollte ich dises vergessen?
2.Das Interesse an dem Grundlagenerwerb möchte ich hervorheben! Dass ich mit kdevelop gut zurecht kam, sollte ein Zeichen sein, dass gewisse Grundlagen vorhanden sind. Nur möchte ich in meinem Rest-Leben nicht nur noch Grundlagen erwerben, sondern auch produktiv arbeiten.
3. Da die Konsole der Einstieg sein soll, um überhaupt mal gewisse Fertigkeiten umzusetzen, dürfte auch klar sein, dass ich auch GUI u.a. für Graphiken usw. dringend benötige.
Vielleicht bekomme ich noch klärende Hinweise.
Vorab vielen Dank
Wahrscheinlich hast Du die Antwort genau so "schnell" geschrieben wie ich meine Fragen.
Insofern reicht mir die Antwort nicht ganz:
1. Wenn jeder Rechner mit ansi.sys präpariert werden muß und es für Window 7 nicht einsetzbar ist, sollte ich dises vergessen?
2.Das Interesse an dem Grundlagenerwerb möchte ich hervorheben! Dass ich mit kdevelop gut zurecht kam, sollte ein Zeichen sein, dass gewisse Grundlagen vorhanden sind. Nur möchte ich in meinem Rest-Leben nicht nur noch Grundlagen erwerben, sondern auch produktiv arbeiten.
3. Da die Konsole der Einstieg sein soll, um überhaupt mal gewisse Fertigkeiten umzusetzen, dürfte auch klar sein, dass ich auch GUI u.a. für Graphiken usw. dringend benötige.
Vielleicht bekomme ich noch klärende Hinweise.
Vorab vielen Dank
1) Ich glaub die ansi-sys ist bis XP schon drauf, Nachrüsten bei Jüngeren geht AFAIK nicht (ich hab kein Windows und werd mir das auch so schnell nicht antun
drum kann ich dahingehend keine wirklich 100% korrekte Aussage treffen)
ABER! Das ist ja jetzt nur Windows. Alles andere baut auf den ANSI-Kontrollsequenzen auf.
Deshalb mein Tip (falls das Programm auf anderen Systemen als Windows laufen soll), eine eigene Wrapper-Funktion bauen, und dort per #ifdef fragen, welches System das gerade ist, und entsprechenden Code ausführen. Oder gleich via Build-System (qmake, cmake, ...) die Plattform erfragen und andere Dateien mitkompilieren lassen (so macht es auch Qt, schau dich mal in den Sourcen um, da gibt es dann qwidgetprivate_win.cpp o.Ä.)
Zum Rest:
Du musst jetzt nicht der Mega-C++-Crack mit gigantischen Fähigkeiten in der Meta-Template-Programmierung werden, oder über eigene Objekthierarchien und diverse Patterns ein gigantisches Framework aufziehen können.
Du solltest halbwegs wissen, was Polymorphie ist, wie man damit umgeht. Was Zeiger sind, was macht "new", was ist ein "NULL-Zeiger, was ein Basisklassenzeiger, SIchtbarkeit bzw. Gültigkeit von Objekten, etc.
Ich hatte auch oben schon erwähnt, dass du ruhig immer mit Qt spielen kannst. Und wenn du schon mit C++ Erfahrung hast, dann sollte das kein großes Problem sein. Du kannst auch jederzeit Fragen stellen. Wenn der Wille zur Weiterbildung besteht, wirst du auch so schnell besser werden.
Manchmal kommt es hier vor, dass Fragen gestellt werden, eine Lösung erarbeitet wird, und alles sofort wieder vergessen wird - die Frage war nur dazu da, ein (überforderndes) Projekt einen Schritt weiter zu bringen. Deshalb: Wenn der Wunsch zu lernen aus dir selbst entspringt, fang einfach an und habe Spaß, sei aber nicht böse, wenn dir jemand sagt "hat mit Qt nix zu tun, das sind C++-Grundlagen"
ABER! Das ist ja jetzt nur Windows. Alles andere baut auf den ANSI-Kontrollsequenzen auf.
Deshalb mein Tip (falls das Programm auf anderen Systemen als Windows laufen soll), eine eigene Wrapper-Funktion bauen, und dort per #ifdef fragen, welches System das gerade ist, und entsprechenden Code ausführen. Oder gleich via Build-System (qmake, cmake, ...) die Plattform erfragen und andere Dateien mitkompilieren lassen (so macht es auch Qt, schau dich mal in den Sourcen um, da gibt es dann qwidgetprivate_win.cpp o.Ä.)
Zum Rest:
Du musst jetzt nicht der Mega-C++-Crack mit gigantischen Fähigkeiten in der Meta-Template-Programmierung werden, oder über eigene Objekthierarchien und diverse Patterns ein gigantisches Framework aufziehen können.
Du solltest halbwegs wissen, was Polymorphie ist, wie man damit umgeht. Was Zeiger sind, was macht "new", was ist ein "NULL-Zeiger, was ein Basisklassenzeiger, SIchtbarkeit bzw. Gültigkeit von Objekten, etc.
Ich hatte auch oben schon erwähnt, dass du ruhig immer mit Qt spielen kannst. Und wenn du schon mit C++ Erfahrung hast, dann sollte das kein großes Problem sein. Du kannst auch jederzeit Fragen stellen. Wenn der Wille zur Weiterbildung besteht, wirst du auch so schnell besser werden.
Manchmal kommt es hier vor, dass Fragen gestellt werden, eine Lösung erarbeitet wird, und alles sofort wieder vergessen wird - die Frage war nur dazu da, ein (überforderndes) Projekt einen Schritt weiter zu bringen. Deshalb: Wenn der Wunsch zu lernen aus dir selbst entspringt, fang einfach an und habe Spaß, sei aber nicht böse, wenn dir jemand sagt "hat mit Qt nix zu tun, das sind C++-Grundlagen"