CString - Problem
-
Hallo,
Eine kurze Frage:
Wenn ich die Konfiguration auf "Debug" habe, aber trotzdem "nur" das Programm normal starte (also nicht im Debug-Modus), wird dann trotzdem die TRACE funktion ausgeführt??
Bei längeren Strings kommt immer ein Fehler und ich denke, dass es an der String-Länge liegt.
Gibt es bei dem CString eine Maximallänge???
Gruss
BigRed
-
Wenn du eine Debugversion hast dann wird immer die Debugversion gestartet egal ob du eine Haltepunkt setzt oder nicht.
Dh. es werden alle Dinge ausgeführt die man nur im Debug hat.Ich habe noch nie von einem MAX-Länge gehört.
-
Die maximale Länge eines CString ist 2.147.483.647 (INT_MAX). Also ein eher theoretischer Wert.Schönen Gruß vom Kauz01
-
Ja, die kannst du dir mit entsprechenden Tools sogar ansehen (http://www.google.com/search?hl=en&lr=lang_en%7Clang_de&c2coff=1&q=debugview+sysinternals&lr=lang_en%7Clang_de)
TRACE / ATLTRACE sind unter VC6 auf 512 Zeichen limitiert (puffer für das sprintf). (steht auch da in der MSDN). Ohne Formatierung hannst du auch TRACE0 verwenden, hat praktisch beliebige Länge
-
Hallo,
Danke für die Antworten. Wenn ich den Crash vermeiden möchte, muss ich also so oder so die Release-Version bereit stellen (ich dachte anfangs, dass es sinnvoll sein, die Debug-Version als "beta" heraus zu geben...)
Gruss
BigRed
-
Nein, wie gesagt, mit TRACE0() kannst du auch einen längeren String raustracen (soweit ich die docu verstehe).
Im Notfall nimmst Du
#ifdef _DEBUG OutputDebugString(msg); #endif