const CString meinVar[13]={L"01001",L"11011",.....}



  • Hallo ,
    ich bekomme den Fehler:-

    'const wchar_t [8]' kann nicht in 'const CString' konvertiert werden
    

    wenn ich const CString meinVar[13]={L"01001",L"11011",.....} im Quelcode compliere.

    Kann jemand mir helfen womit:-
    Was ist L?
    Ohne L bekomme ich 0 Fehler, aber falsches Ergebnis.

    Wie kann ich L behalten und 0 Fehler?

    Für eure Hilfe bin ich dankbar.



  • Willst Du einen Array mit CStrings? Wie wäre es mit:

    vector<CString> meineCStrings;
    meineCStrings.push_back("10010");
    meineCStrings.push_back("10011");
    ...



  • Wäre schön.
    Aber ich habe in Codeprojekt ein Teilcode gefunden. Er hat diese Sätze.
    Ich wollte sie in mein Projekt copiere.



  • Um diese Sätze umzuschreiben, muss ich erst L verstehen.



  • L zeigt an, dass es sich um ein Wide-String-Literal handelt, d.h. die einzelnen Zeichen sind nicht vom Typ char, sondern vom Typ wchar_t. wchar_t hat einen größeren Wertebereich und wird üblicherweise für Unicode verwendet.



  • und wie kann mein code compliere ohne Fehler



  • Entweder die Ls weglassen oder eine String-Klasse verwenden, die mit wchar_t-Elementen arbeitet. Da ich mich mit MFC nicht auskenne, kann ich dazu nicht mehr sagen.



  • CString verwaltet je nach Einstellungen wahlweise char's oder wchar_t's - aber du wolltest offenbar die char-Version davon auf wchar_t-Literale loslassen. Um die "passende" Variante für die Literale zu bekommen, gibt es die Makros _T() oder TEXT(), mit denen du sie maskieren kannst:

    CString meinVar[13]={_T("01001"),_T("11011"),...};
    

    PS: Was genau meintest du mit "falsches Ergebnis"?



  • Hallo,
    Der Fehler war , dass ich nicht Zeichnen ausdrucken könnte.
    inzwischen habe ich mein Projekt auf Unicodezeichensatz umgestellt.
    Es hat funktioniert mit dem Drucken .Allerdings kriege ich Daten aus dem DB aber nicht Rein.

    Beim AddNew() Läuft auf Fehler ..mit Unicode.
    Wie kann ich das Umgehen?


Anmelden zum Antworten