Confusion mit CString::Find()?!?
-
Habs grad mit der 2005er getestet. Der bringt bei mit die 0, nicht die 1. Ich würd eher wie CStoll tippen, dass irgendwas mit deinem Ausgangsstring nicht stimmt.
Tu doch mal in deinem Sourcecode direkt über dem Find deinen CString das "0x3D" zuweisen und schaue, was dann passiert.
-
Also, habe nun Folgendes versucht:
m_strLineContent = "0x3D"; iHexPos = m_strLineContent.Find("0x"); // iHexPos = 1 CString test = "0x3D"; iHexPos = test.Find("0x"); // iHexPos = 1 /* in beiden Fällen gibt TRACE an der Position ein 'x' wieder */Komischerweise nur an der einen Stelle.
Und der Zusammenhang zwischen <Length> und dem ist, dass hier auch Längen-Angaben herausgelesen werden, bloß nicht aus einer XML-Datei.Wahrscheinlich liegt der Fehler dann doch woanders, schließlich geht es an anderen Stellen einwandfrei.
EDIT: Obwohl dann ja der zweite Teil funktionieren sollte (das mit CString test).
-
Welche Visual Studio Version nimmst du?
Tu dir mal das iHex in ner MessageBox ausgeben lassen!
-
Ich nutze Visual C++ .NET 2003.
Die MessageBox sagt auch 1. Gibt es da manchmal Unterschiede?
Was nun wiederum seltsam ist, dass wenn ich nun schreibe:
CString strTest;
und dann eintippe
strTest. // nun sollten doch Funktionen angeboten werden, die erscheinen aber nicht!? Unten links steht -> IntelliSense: 'No additional information available'
-
Warte, nun funktioniert das IntelliSense wieder.
Ist das nicht so, dass in C++-Manier so gecastet wird:
int (a);
und in C-Manier:
(int) a;
?? Oder vertue ich mich da?
Denn ich hatte eine Zeile drüber gecastet gehabt.Aber iHexPos gibt immer noch 1 wieder.
-
C++ cast geht mit static_cast,dynamic_cast, const_cast und reinterpret_cast. Der alte C-Cast ist weiterhin möglich. Sowas wie int(a) ist Delphi, habsch aber in C++ noch nie gesehen^^
Hast mal die MEssagebox probiert? Weil ich habe festgestellt, das selten der Debugger vom 2005er Aussetzer hat. Nicht das der dir einfach nen falschen Wert anzeigt.
edit: ok ich les grad drüber MEssageBox hast schon gemacht^^
-
int (a);
funktionert aber.
Er meckert nicht.
... nachschlag...Habe das aus dem Erlenkötter-Buch "C++ - Objektorientiertes Programmieren von Anfang an". ^^
Damit habe ich vor einigen Jahren angefangen.
NACHTRAG: Ups, einige Zeilen darunter steht, dass die Form wohl noch erlaubt sei, man jedoch dem ISO-Standard entsprechend besser static_cast<> verwenden sollte.
*peinlich*
-
Ahhhh ja dürfte der direkte Aufruf des Operators sein^^ Bin wohl noch zu müde heut^^
-
Trink Kaffee, manchmal hilft's.
(schon meinen Nachtrag im obigen Post gelesen...)
-
ah ja jetzt gelesen^^
naja zu deinem eigentlichen Prob fällt mir jetzt erstmal leider auch nix mehr ein :-| ist schon komisch
hängst evtl mit nem ASCII/ANSI-Problem zusammen?
-
Muss ich überprüfen.
Danke für deine Bemühungen.

MfG,
Paul.