Confusion mit CString::Find()?!?



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


Anmelden zum Antworten