CString nach char*



  • Hallo,

    ich habe eine Frage zu folgendem funktionierenden Code:

    char buffer[16];
    char* ppuffer=buffer;
    CString str("Alex");
    ppuffer=str;

    Innerhalb von CSimpleStringT oder CStringT ist kein Umwandlungsoperator "CString-> char*" definiert (operator char*()). Wie funktioniert es trotzdem?

    Danke für Eure Hilfe

    Alex



  • CString hat einen "operator LPTSTR()" (oder so ähnlich) - und das ist ein typedef für char* 😉



  • CStoll schrieb:

    CString hat einen "operator LPTSTR()" (oder so ähnlich) - und das ist ein typedef für char* 😉

    LPTSTR ist *kein* typedef für char* sondern für TCHAR*

    Somit hängt es von den Compiler-Einstellungen für UNICODE ab, ob es char* oder wchar_t* ist.

    @OP: Wenn Du schon MFC hast, dann verwende das CT2[C]A makro:

    CString s(_T("hello world"));
      char *pStr = CT2A(s);
    

Anmelden zum Antworten