Wie, eine bestimmte Zeit lang dauernd F5 und dann einmal Enter? Oder nur einmal F5 und dann Enter?
Und wie schnell und oft soll es sich denn wiederholen?
Beiträge von Wasserleiche
-
-
Und dort gibst du ein "direktx c++ tutorial" oder besser noch "opengl c++ tutorial".
-
Hä, was willst du machen? Du willst die RS232 (die serielle) Schnittstelle programmieren?
Klar kannst du das, nur nicht mit ISO C++. Da musst du schon auf die API des Betriebssystem zurückgreifen oder eine Library dazu nutzen.
-
Also für sowas gehört man eigentlich geschlagen.
1. findest du das in 30 Sekunden googlen raus (http://www.trillian-messenger.net/de/faq#router - ich hab ca. 30 Sekunden gebraucht)
2. bist du im völlig falschen Forum
Das nächste mal Hirn anschalten bevor du postest...
-
-
Also so ganz verstanden hab ich deine Frage nicht. Wo willst du den Programmpfad auslesen?
Wenn du den Pfad während der Laufzeit haben willst, müsste das Workingdirectory eigentlich funktionieren. Weiß jetzt allerdings nur wie man das bei Qt hinbekommen würde...
-
Halt, du verwechselst hier gerade Definition und Deklaration. In der Header Datei stehen (normalerweise) nur die Definitionen deiner Klassen und deren Methoden/Membervariablen. Dort steht kein ausführbarer Code (Deklaration).
Der Compiler braucht die Definition für jede Objektdatei (.o) um zu wissen, was er mit einer Instanz machen kann. Die Definition der Klasse steht am Ende nicht in der Objektdatei.Natürlich hast du beispielsweise bei Templates, bei der die Deklaration in der Headerdatei drin stehen muss um während der Compilezeit den Code erstellen zu können, Redundanzen. Weiß jetzt aber nicht ob die eventuell wegoptimiert werden. Das müsste dann im Linker geschehen.
Und Vorwärtsdeklaration von Klassen in Headerdateien beschleunigen einfach den Compiliervorgang, weil der Compiler nicht für jede Objektdatei 100te Header parsen muss.
-
In welcher Hinsicht ein Overhead?
Du musst die Headerdatei includen, sonst weiß der Compiler ja nicht was das für eine Struktur/Klasse ist (also welche Funktionen, Methoden und Member). Du kannst sonst nicht damit arbeiten. -
Du nutzt in der Header Datei Vorwärtsdeklaration um dort keine Includes nutzen zu müssen. Schöne Sache (mach ich auch so), aber ich glaube du hast vergessen in der kernel.cpp die mainFrame.h zu includen.
Jetzt weiß der Compiler zwar das es cMainFrame gibt, und kann die Zeigeroperationen ausführen (die Zuweisung) da alle Zeigeradressen 32 bzw. 64 Bit groß sind, aber der Methodenaufruf geht schief -> er weiß ja nicht welche Methoden für cMainFrame überhaupt existieren.
-
Das Problem ist, dass string::operator[] eine Referenz auf ein char zurück gibt. Der + Operator aber mindestens einen String haben will.
So würde es aber beispielsweise gehen:
Codestring tmp1, tmp2; getline(cin, tmp1); if(tmp1.length() > 2) { tmp2 = string(1, tmp1[1]) + tmp1[2]; cout << tmp2 << endl; }
In der If-Anweisung lässt du dir temporär einen String erstellen mit dem der + Operator arbeiten kann.
-
Die getline() Funktion für std::string ist ein bisschen anders. Du musst sie jetzt so nutzen:
getline(cin, tmp);
-
Tja, das liegt schlicht und ergreifend daran, dass hier keine "String-zusammenfüg-Funktion" aufgerufen wird, sondern der ASCII Wert von a (97) und l (108) addiert wird.
Warum nutzt du für tmp eigentlich keinen std::string, wäre einfacher. Für std::string gibt es nämlich einen + Operator der genau das macht was du willst.
Wenn du mit c-strings arbeiten willst, dann musst du auf strcpy() zurückgreifen. Aber das würde ich nicht empfehlen...
-
Ich trau mich zu wetten, dass die letzten 5 Threads alle von dir sind.
Und wenn ich das ganze unter diesem Aspekt betrachte, solltest du dich erst etwas mehr mit c/c++ Grundlagen beschäftigen, als ohne diese Programme zu schreiben.
Arbeite erstmal ein gutes Tutorial komplett durch, und dann stell die verbleibenden Fragen!
-
-
Sorry, aber ein Tutorial schreib ich jetzt nicht. Die gibts wie Sand am Meer. Trotzdem mal ein paar Tipps:
Um nicht zu überschreiben übergibst du ios_base::app im Konstruktor von ofstream. Damit hängst du alles hinten dran.
Um lesend und schreibend auf die Datei zugreifen zu können, müsstest du fstream nutzen, anstatt ofstream. Das Auslesen der Datei würde ich in eine Funktion packen, und dir die Informationen in eine Liste schreiben. Bei Programmstart rufst du die Funktion zum Auslesen einmal auf.
Anfügen der neuen Informationen könntest du dann auch erstmal mit der Liste machen. Kurz bevor sich das Programm dann beendet schreibst du die neuen Informationen hinten dran. Diese Funktionalität würde ich auch in eine Funktion packen.
Links:
Für die Liste nimm die std::list.
Informationen zu fstream oder ofstream. -
Es ist nicht besonders sinnvoll den streaming Operator dafür zu nutzen.
Nimm istream::getline().
Also "cin.getline(...);"
-
Weil this auf ein "programm" Objekt zeigt, und dieser ein QWidget ist (QMainWindow erbt von QWidget).
Die anderen beiden Parameter müssen irgendwo via default festgelegt sein. -
Naja, ich kanns ja nur vermuten, da ich deine Klassendefinitionen nicht kenne.
Aber im Großen und Ganzen müsste es ja so aussehen:
Code
Alles anzeigen/*** Klassendefinitionen ***/ class programmWidgetBase : public QWidget { programmWidgetBase(QWidget* parent, const char* name, WFlags fl); // ... }; class programmWidget : public programmWidgetBase { programmWidget(QWidget* parent, const char* name = ???, WFlags fl = ???); // ... }; class programm : public QMainWindow { programm(); // ... }; // jetzt kann im Konstruktor von "programm" die setCentralWidget(...) Methode aufgerufen werden
Dann funktionieren auch die Konstruktoren. Aber ohne die Headerdateien zu sehen ist das alles reine Spekulation.
Ich verstehe nicht ganz warum du das nicht verstehst, du hast das doch selber geschrieben, oder? Oder handelt es sich um Code eines fremden Programms? -
Also ich nehme mal an, dass deine Klasse "programmWidget" von QWidget erbt, und deine Klasse "programm" erbt von QMainWindow.
Dann sieht für mic alles ok aus, nichts wo ich mich wundern würde. -
Also wegen der Warnung: nutze "0.0" und die dürfte nicht mehr auftauchen.
Und was meinst du mit "Was hat das genau zu bedeuten?", beziehst du dich da auf den Codeschnippsel?
Ich hab mich vor einer Weile mal mit Qt beschäftigt, aber kann nicht sagen ob es an einem Update liegen könnte... sry...