Zum Inhalt springen

Klotzkopp

Mitglieder
  • Gesamte Inhalte

    9912
  • Benutzer seit

  • Letzter Besuch

  • Tagessiege

    3

Alle Inhalte von Klotzkopp

  1. int item.cchTextMax steht, wie groß der Puffer für den Text ist. Wenn du mehr brauchst, musst du pszText selbst zuweisen. Dieser Speicher muss solange unverändert bereit stehen, bis das Element entfernt wird oder zwei weitere LVN_GETDISPINFO-Nachrichten eingetroffen sind.
  2. Wenn du mit "Einlesen" das Anfordern vom Parentfenster mittels Notifikation meinst, ja. Wenn du wirklich ein virtuelles ListView hast, dann brauchst du gar keine Daten hineinzuschreiben. Du brauchst auch keinen Speicher anzufordern. Zeig mal deine LVN_GETDISPINFO-Behandlung.
  3. Ein virtuelles ListControl hält die anzuzeigenden Daten nicht selbst vor, sondern fragt immer beim Parent nach. Dazu schickt es die Nachricht LVN_GETDISPINFO. Mal davon abgesehen, dass es hier nicht notwendig ist, Speicher vom Heap anzufordern (du könntest auch eine lokale LVITEM-Variable benutzen): Du musst die Struktur mit Daten füllen. Setz alle Member auf 0, bis auf iItem, den setzt du auf den Index, wo das Item eingefügt werden soll. Den Text kannst du gleich mit angeben, musst du aber nicht.
  4. Dieser Code hilft dir nur, wenn du ein virtuelles ListControl brauchst. Falls du nicht weißt, was das ist, brauchst du es sehr wahrscheinlich nicht. Fehler in deinem Code können wir nur finden, wenn du uns den Code zeigst.
  5. Wie Crash2001 schon sagte, vor einem Screenshot kannst du dich nicht schützen. Kopieren in die Zwischenablage verhinderst dadurch, dass du Steuerelemente verwendest, die auf die Clipboard-Nachrichten nicht reagieren, oder indem du die Steuerelemente "subclasst" und die Clipboard-Nachrichten abfängst. Du kannst den Text aber auch direkt ausgeben, ganz ohne Steuerelemente.
  6. Der Sprungantrieb verbraucht Energiezellen aus deinem Laderaum.
  7. Aber wenn du nach dem Setzen des Timers auf das Ende des Threads wartest, ist deine Nachrichtenschleife wieder blockiert. Warum setzt du die "Weitere Anweisungen" nicht in die Timerfunktion?
  8. Wenn du die Abarbeitung anhalten willst, um auf das Ende des Threads zu warten, warum dann überhaupt ein eigener Thread?
  9. Das ist das Travelling Salesman Problem (wenn man die Rückkehr zum Startpunkt weglässt). Bisher ist kein Algorithmus bekannt, der das Problem schneller als exponentiell löst. Du kannst natürlich alle möglichen Routen durchprobieren, aber bei vielen Punkten wird das sehr bald sehr langsam. Um wieviele Punkte geht es denn?
  10. Wie kommt diese Information in site rein? In dem Code auf Seite 1 dieses Threads ist site ein Array von 20 char, das nicht initialisiert wird. site kann nichts speichern, weil nirgendwo im Code irgendein Inhalt in site abgelegt wird.
  11. Aber im ursprünglichen Code doch, oder? Wie soll diese Abfrage funktionieren, wenn site nie mit Daten gefüllt wird?
  12. Was ich nicht verstehe: Wenn du die strcpy-Anweisung rausgenommen hast, wie wird site dann überhaupt mit Inhalt gefüllt?
  13. Ich bitte vielmals um Entschuldigung :floet: Gehört die Datei main.c auch zu diesem Programm? Falls ja, gibt es da drin auch eine main-Funktion? Stellt sich der Fehler noch so dar, wie du ihn zu Anfang beschrieben hast?
  14. Hallo Kitty82, Er programmiert in C, d.h. das getline ist nicht std::getline. Er kann auch mit ifstream nichts anfangen. @Quoth: Irgendwo muss getline herkommen. Vielleicht aus einer Headerdatei?
  15. strcpy (site, "site"); ... if(0 == strcmp(site, "test")) [/PHP] Du setzt site auf "site" und vergleichst dann mit "test"? [PHP] if(prog == 1) fprintf(dynp, "document.forms[0].program[0].checked=true;\n"); else if (prog == 2) fprintf(dynp, "document.forms[0].program[1].checked=true;\n"); else if (prog == 3) fprintf(dynp, "document.forms[0].program[2].checked=true;\n"); Machs doch so: fprintf(dynp, "document.forms[0].program[%d].checked=true;\n", prog-1); [/PHP] Mit deinen anderen if-if/else-Kaskaden kannst du das gleiche machen. [PHP] getline(&line,&l, setup); Wie sieht getline aus? Ich vermute da ein massives Speicherleck. if (lang == 1) fprintf(setup, "document.SetupForm.language[0].checked=true;\n"); else if (lang == 2) fprintf(setup, "document.SetupForm.language[1].checked=true;\n"); if (unit == 1) fprintf(setup, "document.SetupForm.torqueunit[0].checked=true;\n"); else if (unit == 2) fprintf(setup, "document.SetupForm.torqueunit[1].checked=true;\n"); else if (unit == 3) fprintf(setup, "document.SetupForm.torqueunit[2].checked=true;\n"); else if (unit == 4) fprintf(setup, "document.SetupForm.torqueunit[3].checked=true;\n"); else if (unit == 5) fprintf(setup, "document.SetupForm.torqueunit[4].checked=true;\n"); else if (unit == 6) fprintf(setup, "document.SetupForm.torqueunit[5].checked=true;\n"); [/PHP] Auch hier reicht je eine Zeile: [PHP] fprintf(setup, "document.SetupForm.language[%d].checked=true;\n", lang - 1); fprintf(setup, "document.SetupForm.torqueunit[%d].checked=true;\n", unit - 1);
  16. Zeig bitte mal den aktuellen Code.
  17. Ändere if (site=="test") in if(0 == strcmp(site, "test"))
  18. Ist site ein char-Array oder char-Zeiger? Falls ja: Die kannst du nicht mit == vergleichen, da dann nur ein Adressenvergleich durchgeführt wird. Du musst die Funktion strcmp verwenden.
  19. Die Meldungen zeigen, dass SilentHunter das Programm mit dem Debugger gestartet hat. Da passiert das nicht.
  20. Dein Programm stürzt nicht ab. Die Meldungen stellen auch keine Fehler dar. Das Programm beendet sich nur ganz normal, wenn es fertig ist. Dabei schließt sich das Konsolenfenster. Das bewirkt natürlich, dass du die letzte Ausgabe nicht mehr siehst. Du kannst das verhindern, indem du am Ende des Programms noch eine Eingabe einbaust.
  21. Du "selektierst" den Pen in den Device Context - Stichwort SelectObject. Nicht vergessen, hinterher den alten Pen wieder reinzusetzen.
  22. Du könntest mehrfach einlesen und die gemessene Zeit durch die Anzahl der Lesevorgänge teilen.
  23. Das Standard-Windows-Listcontrol kann weder Sub-Steuerelemente darstellen (außer Eingabefelder in der ersten Spalte) noch mehrzeilige Texte darstellen. Wenn du MFC nicht benutzen willst, bleibt dir nichts anderes, als entweder die Comboboxen selbst zu erstellen oder das Listcontrol komplett selbst zu malen. Mit MFC ließe sich sicher bei CodeProject etwas passendes finden. Auf jeden Fall kannst du dir da aber Anregungen holen.
  24. Anscheinend ist das ein Bug in Visual C++ 6. Der Compiler akzeptiert das hier: int x = sizeof(char*) 3; Dabei wird die 3 komplett ignoriert. Visual C++ 7.1 gibt eine Fehlermeldung aus.
  25. Sicher ein Leerzeichen, kein Leerstring? Aber selbst dann kannst du nicht mit != vergleichen, du musst strcmp benutzen. Wenn du den Zeiger nach dem free auf NULL setzt, kannst du doch gar nicht mehr doppelt freigeben. Und du setzt doch am Anfang alle Zeiger auf NULL, oder? free(NULL) tut nichts. Darum ist die Abfrage für den free-Aufruf sinnlos.

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...