Zum Inhalt springen

Klotzkopp

Mitglieder
  • Gesamte Inhalte

    9912
  • Benutzer seit

  • Letzter Besuch

  • Tagessiege

    3

Alle Inhalte von Klotzkopp

  1. Klotzkopp

    Heapfehler

    Dann gibst du einen Zeiger an free/delete, den du nicht mit malloc/new bekommen hast. Möglicherweise hast du den Zeiger geändert (inkrementiert, neu zugewiesen), oder du schreibst irgendwo in deinem Code über eine Arraygrenze hinaus und änderst damit einen solchen Zeiger.
  2. Klotzkopp

    Heapfehler

    Benutzt du DLLs? Falls ja, hast du bei den DLLs und beim Hauptprogramm dieselbe Version der Laufzeitbibliothek benutzt?
  3. Nein, er zeigt 6009652.53l und 4502236.94l. Zwei Nachkommastellen und ein kleines 'L'. Den l-Prefix gibt es nicht für %f, daher wird der Buchstabe normal ausgegeben.
  4. Nein, so pauschal kann man das nicht sagen. Man muss sich klarmachen, dass include-Direktiven nichts weiter bewirken, als vom Präprozessor durch den Inhalt der angegebenen Datei ersetzt zu werden. Du kommst also ohne die include-Direktive in der Headerdatei aus, wenn du in jeder .cpp-Datei, die diese Headerdatei benutzt, vor die include-Direktive der Headerdatei die für winsock2.h setzt. Entscheidend ist nur, dass hinterher, wenn alle include-Direktiven ausgewertet sind, der Inhalt von winsock2.h vor dem Inhalt deiner Headerdatei in der .cpp-Datei landet.
  5. Was heißt "du kannst nicht"? Bekommst du eine Fehlermeldung? Falls ja, welche? Siehe Signatur.
  6. Verrätst du uns, welche UI-Bibliothek du benutzt?
  7. Es gibt in C und C++ überhaupt keine Funktionen ohne "extra Code oder Libraries". Es ist ein ganz anderes Sprachkonzept als PHP. Ja. Du wolltest eine einfache Lösung und hast mehrere Links zu solchen bekommen.
  8. Kein Denkfehler, sondern eine Spracheigenschaft von C und C++, die du nicht kennst Normalerweise werden von den Funktionsargumenten Kopien gemacht (call by value). Änderungen in der aufgerufenen Funktion betreffen nur diese Kopie, und wirken sich nicht auf die Variable aus, die im Aufruf steht. Arrays sind da allerdings eine Ausnahme. Von einem Array wird immer nur ein Verweis übergeben (call by reference). Änderungen am Array in der aufgerufenen Funktion wirken sich damit auf das Array aus, das für den Aufruf benutzt wurde.
  9. - AfxGetAppName - GetModuleFileName
  10. Ich glaube, du gehst falsch an die Sache heran. Ich würde zuerst die Gesetzmäßigkeit suchen, und dann dazu einen Algorithmus entwickeln. Finde doch zuerst mal raus, welche Anzahl der Computerspieler übrig lassen muss, um immer zu gewinnen. Die 3 hast du ja offenbar schon gefunden. Dann solltest du dich fragen, ob es eine Anzahl gibt, die der Computerspieler in der vorausgehenden Runde übrig lassen kann, so dass er in der nächsten auf jeden Fall auf 3 kommen kann. Wenn du das ein paar Mal durchspielst, springt dich die Gesetzmäßigkeit praktisch an.
  11. "Geladen" wird da nichts. Include-Direktiven solltest du da benutzen, wo du sie brauchst, sonst nicht. Und using-Direktiven sind ein zweischneidiges Schwert, wenn man sie auf ganze Namensräume anwendet. Einerseits ersparen sie einiges an Schreibarbeit, andererseits heben sie aber den Hauptzweck eines Namensraumes wieder auf: Die Vermeidung von Namenskonflikten. Auf keinen Fall solltest du using-Direktiven in Headerdateien benutzen, d.h. in Dateien, die selbst mittels einer include-Direktive in eine andere Datei eingebunden werden. Das lässt sich mal eben in ein paar Worten erklären. Schau mal hier rein: http://de.wikipedia.org/wiki/Oop
  12. Das ist so nicht ganz richtig. Die include-Direktive des Präprozessors (die fangen alle mit # an) bewirkt eigentlich nur, dass vor dem Compilieren an die Stelle der Direktive der Inhalt der angegebenen Datei (hier: iostream) kopiert wird. iostream ist eine Datei, die u.a. Deklarationen für die Konsolenein- und -ausgabestreams enthält. Befehle gibt es in C und C++ nicht Alle Objekte und Funktionen der C++-Standardbibliothek liegen im Namespace std. Um also cout benutzen zu können, muss man std::cout schreiben. Um das nicht machen zu müssen, kann man auch einzelne (oder, wie hier, alle) Objekte eines Namensraum in den globalen Namensraum "heben". Das geschieht mit Hilfe der so genannten using-Direktive.
  13. Wenn du dich mit der Funktionsweise der MFC nicht gut auskennst, solltest du Nachrichtenbehandlungsfunktion nicht von Hand, sondern immer mit dem Klassenassistenten anlegen. Auf dem zweiten Reiter findest du dort die Fenster und Steuerelement und die Nachrichten. Wähle dort deine Dialogklasse und WM_CLOSE aus und füge die Funktion hinzu.
  14. Hast du die Methode "von Hand" angelegt, d.h. nicht über den Assistenten? Dann hast du vermutlich den MessageMap-Eintrag vergessen. Ohne den läuft nichts.
  15. Verschoben: -> Basic
  16. Du brauchst eine Schleife und eine CString-Variable, die eine einzelne Zeile aufnimmt, wie in dem Beispielcode von Manfred.Becker.
  17. Das ist wieder mal eine grandiose Fehlerbeschreibung... Was soll das werden? Willst du die Version mit dem char-Buffer oder die Version für CString verwenden? Warum willst du nur 7 Zeichen lesen?
  18. http://msdn.microsoft.com/library/en-us/perfmon/base/taking_a_snapshot_and_viewing_processes.asp "Er machts ned" ist eine schlechte Fehlerbeschreibung. Was genau tust du und welche Fehlermeldung erhältst du?
  19. In der MSDN Library findet sich da ein sehr schönes Beispiel. DLLs werden nicht includet. Für Kernel32.dll musst du eine Importbibliothek dazulinken, daber das sollte VC schon von ganz alleine machen, wenn du es ihm nicht ausdrücklich verboten hast.
  20. Klotzkopp

    scanf()

    Was ist denn an diesem hier schlecht?
  21. Klotzkopp

    scanf()

    fflush erzeugt, wenn es auf Eingabeströme wie stdin angewendet wird, undefiniertes Verhalten. Bei einigen Compilern bewirkt es ein Löschen des Eingabepuffers, bei deinem bewirkt es anscheinend gar nichts, aber darauf darf man sich nicht verlassen.
  22. Klotzkopp

    scanf()

    Dieses Verhalten kommt daher, dass der Tastendruck der Eingabetaste noch im Eingabepuffer steht und dort nicht rausgeholt wird. Das kannst du beheben, indem du vor scanf den Puffer löschst: setvbuf(stdin,NULL,_IONBF,0); setvbuf(stdin,NULL,_IOFBF,BUFSIZ); [/code] Und lass fflush(stdin) weg, das erzeugt undefiniertes Verhalten.
  23. Über die Headerdatei bindest du nur die Deklaration der Klasse und ihrer Methoden ein. Die Definition befindet sich in einer Bibliothek, und die musst du dazulinken. Siehe auch: http://xfc.xfce.org/docs/howto/html/getting_started.html#GS09
  24. Dein Problem ist ein ganz anderes: Der Linker findet die Funktion list_toplevels nicht. Hast du möglicherweise vergessen, eine Bibliothek dazuzulinken?
  25. Bei mir funktioniert das. Der Fehler liegt vermutlich irgendwo zwischen dem Format und der Ausgabe. Es wundert mich außerdem, dass der Backslash im Ergebnis steht. Kann irgendwie nicht sein.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...