Alle Beiträge von Klotzkopp
-
Socketprogrammierung in C
Der Client baut keine zweite Verbindung auf. Du hast ja dafür gesorgt, dass connect nur einmal aufgerufen wird. Der Client schickt alle Daten über denselben Socket raus, der Server erwartet nach jedem recv/send-Paar einen neuen Verbindungsaufbau. Das kann nicht funktionieren.
-
Recordset Edit *ratlos
Und welchen? Was du bisher machst, sieht so aus: Du gehst alle Datensätze durch, und nach dem letzten versuchst du, einen Datensatz zu ändern, der nicht da ist. Um alle Datensätze zu ändern, solltest du das in der while-Schleife machen. Hier wäre es aber wohl effektiver, gleich ein UPDATE-Statement abzusetzen.
-
Recordset Edit *ratlos
Willst du einen Datensatz ändern, oder jeden?
-
CEdit eingabe überprüfen!
Warum nimmst du nicht gleich ein CDateTimeCtrl? Formatprüfungen sind immer problematisch, weil es so viele Möglichkeiten gibt, ein Datum einzugeben. Mit einem spezialisierten Steuerlement bist du da auf der sicheren Seite.
-
Abfrage, welcher Button gedrückt wurde
Du kannst mit dem Klassenassistenten für jeden Button eine Nachrichtenbehandlungsfunktion erstellen lassen, die aufgerufen wird, wenn der Button angeklickt wird. Ein Doppelklick auf den Button im Ressourceneditor tut's auch.
- Whitspace
- Whitspace
- Whitspace
-
Whitspace
Wieso nicht? ostream ist ostream, das ist ja der Sinn der C++-Streams. //kein _itoa, kein write XMLFile << outxml<< "\"/>\n";[/code] Das sind auch nur 19 Zeichen. Du schreibst 20. Wirf erst mal write komplett raus.
- Whitspace
-
Whitspace
Ich sagte doch, du musst die tatsächliche Länge des Strings berücksichtigen. Du schreibst 10 Zeichen in die Datei, egal wie lang str ist. Ist str kürzer, wird die Stringterminierung in die Datei geschrieben, was vermutlich kein gültiges XML ergibt. Ist str länger, schneidest du die letzten Stellen der Zahl ab. Ich verstehe sowieso nicht, wieso du in eine Textdatei binär schreibst.
-
Whitspace
Sogar zwei: - du solltest dir dringend nochmal ansehen, was der dritte Parameter von itoa bedeutet, und - du solltest beim Schreiben der in Strings umgewandelten Zahlen deren tatsächliche Länge berücksichtigen. Ich frage mich allerdings, was das mit Webdesign zu tun hat.
-
NT / SQL Scanner
Nein. Der Fehler würde seltener auftreten, aber er ist immer noch da. Wirklich sicher geht es nur so, wie ich es beschrieben habe.
-
TrayIcon
Das hatten wir schon ein paar Mal. Such einfach mal nach Shell_NotifyIcon.
-
SetCursor(LoadImage()); ?
Wenn du einen Cursor laden willst, musst du IMAGE_CURSOR benutzen. Außerdem solltest du die Aufrufe nicht schachteln, sonst kannst du Fehler bei LoadImage nicht mehr abfangen. Was den Fehler angeht, du kannst den Rückgabewert von LoadImage auf HCURSOR casten, wenn LoadImage erfolgreich war.
-
SetCursor(LoadImage()); ?
LoadImage(0, Dateiname, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
-
Auslesen einer Datei
In meinem Code wird nur ein einziger char umgewandelt. Es sollte nicht besonders schwierig sein, das in eine Schleife zu verpacken. Das Array hexdigits wird nicht umgewandelt, es dient nur als Lookup-Tabelle für die Zeichen.
-
Auslesen einer Datei
Eine Möglichkeit: #include <iostream> using namespace std; int main() { unsigned char byte = 'V'; char hexdigits[] = "0123456789abcdef"; char hex[3] = {0}; hex[0] = hexdigits[byte / 16]; hex[1] = hexdigits[byte % 16]; cout << hex << '\n'; }[/code]
-
Dateien aus Verzeischnis auslesen?
if((w32fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) == FILE_ATTRIBUTE_DIRECTORY) (Edit: sorry, hatte da ein "nicht" gelesen, wo keines war ) Aus cFileName, wie die Dateinamen auch. Du musst nur aufpassen, dass du nicht bei . und .. weitersuchst.
- Whitspace
-
Auslesen einer Datei
Wenn du jedes Byte einzeln in eine Hexzahl umwandeln willst, ist die Endianness ja egal Ok, die Aufgabe ist klar. Wo ist das Problem? Einlesen? Umwandeln? Schreiben?
-
Dateien aus Verzeischnis auslesen?
strncpy(path, w32fd.cFileName, 92); Du solltest allerdings das letzte Element des Arrays mit '\0' initialisieren, für den Fall, dass 92 Zeichen nicht ausreichen (was sehr leicht passieren kann). Das geht nicht automatisch. Du musst die Unterverzeichnisse suchen (in WIN32_FIND_DATA::dwFileAttributes ist das Flag FILE_ATTRIBUTE_DIRECTORY gesetzt) und dann in den gefundenen Verzeichnissen nochmal suchen.
-
NT / SQL Scanner
Indem du entweder für jeden Thread ein eigenes Array benutzt oder durch Synchronisationsobjekte (Events o.ä.) sicherstellst, dass die Schleife erst dann weiterläuft, wenn der Thread das Array ausgewertet oder kopiert hat.
-
NT / SQL Scanner
Das wundert mich nicht. Du übergibst jedem Thread die Adresse desselben char-Arrays (destaddr). Wie willst du sicherstellen, dass der Thread den Inhalt ausgewertet hast, bevor du ihn in der Schleife wieder änderst?
-
Auslesen einer Datei
Wieviele Bytes pro Zahl? Big oder Little Endian?