CString lässt sich nicht editieren



  • Bitte schreib zusammenhängend und in halbwegs verständlichen Sätzen 😉



  • OK,
    Wenn ich mein Projekt compliere, springt der Compeiler diese Stelle.



  • Und was sagt er zu der Stelle? Irgendein Syntax-Fehler oder wie?

    (btw, etwas mehr code wäre auch nicht schlecht, um den Fehler eingrenzen zu können. In welchem Zusammenhang steht denn dieses Fragment?)



  • Fehler gibt es nicht.
    Es geht um eine Unicode Projekt.
    Ich bekomme einen CString-Wert(MeinString) per Ado von einer MSSQL -Tabelle.
    Ich weisse diesen Wert an zweiten CStringvariable(NeuString) + L"ExtraText".
    Die (NeuString) hält nur den Wert von (MeinString) ohne --> "ExtraText".

    Teilcode ist Schwer, da ich von verschiedene Stellen pasteln muss.



  • Und wann genau "springt der Compiler diese Stelle"?

    PS: Setzt doch mal einen Haltepunkt dorthin und beobachte dann im Debugger, was genau passiert.



  • Der Debugger an der Stelle zeigt nicht.

    Komischerweise.
    Es hat geklappt, wenn ich die Reihnfolge ändere.

    (NeuString) = (MeinString) + L"ExtratText" ;
    

    (NeuString) bleibt = (MeinString)
    aber wenn

    (NeuString) = L"ExtratText" +(MeinString)   ;
    

    (NeuString) ist wirklich (ExtratTextMeinString)



  • dokdok2 schrieb:

    Der Debugger an der Stelle zeigt nicht.

    Kauf dir bitte einen Duden - und bemühe dich, in ganzen Sätzen zu schreiben. Und dann solltest du lernen, den Debugger richtig einzusetzen (Haltepunkte an der richtigen Stelle sind mitunter ganz praktisch).



  • mmmm.

    Haltepunkte habe ich richtig eingesetzt.
    Ich habe vorher erwähnt, dass der Debugger reagiert, als ob an der Stelle nichts in der Code geschrieben wurde.

    Ist meine Schreibweise jetzt Dudenmassig? 😃



  • Ich fürchte, ohne etwas echten Code kommen wir hier nicht weiter (und daß der Debugger grundlos über diese Zuweisung drüberspringt, glaube ich auch nicht).



  • Danke, ich habe es gelöst.

    Unicode and CStrings 
    There are two different issues in dealing with Unicode and CStrings.  In VS6, 
    the CString takes on the data type of the TCHAR type; that is, in an "ANSI" application a CString holds only 8-bit characters and in a Unicode app a 
    CString holds only Unicode (16-bit) characters.  If you have to "mix and match" you are out of luck. In some cases, this forces you to compile as a Unicode app, use Unicode everywhere, and "down-convert" the Unicode characters to 8-bit characters before sending them out, and "up-convert" incoming character streams to Unicode.
    
    This isn't always a Bad Thing; for example, if the incoming characters were in 
    UTF-7 or UTF-8 encoding, then Unicode is actually the "natural" representation of those characters, and only the transport layer is concerned about the transmittal as 8-bit characters.
    
    In VS.NET, however, we have more degrees of flexibility. In addition to the 
    CString data type, which follows the same rules as VS6, there are two new data types, CStringA and CStringW. A CStringA string always holds 8-bit characters independent of the compilation mode of the program, and a CStringW always holds Unicode characters, independent of the compilation mode of the program.
    

    Mit Duden könnte ich das nicht umschreiben. 😋



  • Es war eine Typumwandlung.

    LPCWSTR neuString= meinstring;
    CString ergebnis(neuString);
    ergebnis = ergebnis +L"ExtraText" ;
    

Anmelden zum Antworten