cannot convert from 'const char [4]' to 'ATL::CStringT



  • Moin,

    kann mir eventuell jemand helfen?

    Ich habe folgende Konstante in einer bereits vorhandenen Header-Datei versucht einzubinden.

    const CString PARSE_DATEI="commandreply.xml";

    immer wenn ich kompilieren will, kommt folgende Fehlermeldung:

    error C2440: 'initializing' : cannot convert from 'const char [4]' to 'ATL::CStringT<BaseType,StringTraits>'
    with
    [
    BaseType=wchar_t,
    StringTraits=StrTraitMFC_DLL<wchar_t>
    ]
    Constructor for class 'ATL::CStringT<BaseType,StringTraits>' is declared 'explicit'
    with
    [
    BaseType=wchar_t,
    StringTraits=StrTraitMFC_DLL<wchar_t>
    ]

    Da ich an einem bereits vorhandenen Projekt arbeite, wo die Konstanten
    bereits in dieser Art und Weise korrekt deklariert sind (und auch vom Compiler akzeptiert werden), muss es etwas mit den Projekteinstellungen an meinem Rechner zu tun haben. Syntaktisch ist es jedenfalls korrekt.
    Weiss jemand Rat? wichtig dabei: Die Deklaration darf nicht geändert werden,
    also darf ich nur die Einstellungen am Projekt ändern.

    MfG Koerbi



  • Dann zeig mal bitte die Zeile wo der Fehler ist.
    Du hast IMHO 4 Zeichen welche du als char übergibst. Er möchte aber UNICODE.


  • Mod

    Und ich Tippe mal darauf, dass dies ein Unicode Projket ist... 🕶



  • koerbi schrieb:

    Ich habe folgende Konstante in einer bereits vorhandenen Header-Datei versucht einzubinden.

    const CString PARSE_DATEI="commandreply.xml";

    Bei dem String würdest du bestimmt keine Meldung über einen "const char[4]" bekommen 😉

    @Topic: Zu den Problemen mit UNICODE gibt es hier schon genug Beiträge (ist das Problem eigentlich schon in der FAQ?). Und die Lösung ist immer die selbe - schließ' deine String-Literale in _T(...) oder TEXT(...) ein, dann werden sie korrekt umgesetzt.



  • CStoll schrieb:

    @Topic: Zu den Problemen mit UNICODE gibt es hier schon genug Beiträge (ist das Problem eigentlich schon in der FAQ?). Und die Lösung ist immer die selbe - schließ' deine String-Literale in _T(...) oder TEXT(...) ein, dann werden sie korrekt umgesetzt.

    Ich glaube, das fehlt noch. Hätte jedenfalls eine eigene Kategorie verdient.

    Fallen dir auf Anhieb ein oder mehrere Beiträge ein, wo es schön erklärt ist? 🙂
    Den von gestern werde ich nachher mal verschieben.



  • estartu schrieb:

    Fallen dir auf Anhieb ein oder mehrere Beiträge ein, wo es schön erklärt ist? 🙂
    Den von gestern werde ich nachher mal verschieben.

    "Schön" erklärt ist es im Magazin (Anwendung UNICODE-fähig machen), meine eigenen Erklärungen leiden mitunter an ihrer Kürze. Aber frag' mal Jochen oder Martin, ob sie etwas passendes aus dem Hut zaubern können.


Anmelden zum Antworten