Char in CString



  • Guten Tag,

    ich möchte einen char* in einen Cstring umwandeln
    mach das bislang mit:
    strcpy( buffer, text );

    aber da warnt der Kompiler das "strcpy" verlatet sei?!

    andersrum ist ja einfach:
    CString str(charvariable);



  • individuum schrieb:

    andersrum ist ja einfach:
    CString str(charvariable);

    Wierum willst du jetzt umwandeln? Das Gebilde da^^ wandelt einen char* in CString um - in die umgekehrte Richtung (CString nach char*) kannst du in den meisten Fällen die implizite Typumwandlung verwenden (char* data = string;) oder über GetBuffer() an den Zeichenpuffer gelangen.



  • CStoll schrieb:

    in die umgekehrte Richtung (CString nach char*) kannst du in den meisten Fällen die implizite Typumwandlung verwenden (char* data = string;) oder über GetBuffer() an den Zeichenpuffer gelangen.

    ja das mit dem puffer hab ich ja gemacht..

    CString text;
    int index=0;
    text="blub"
    index=text.GetLength();
    char* buffer = new char[ index + 1 ];
    strcpy( buffer, text );

    und wie würd das mit dem impliziten Typumwandlung funktionieren?



  • grml?! Wenn du nen char* haben willst nimmst du einfach:

    CString strMyString = _T("Das ist aber ein lustiger TEXT!!!");
    char* pMyString = strMyString.GetBuffer(); // bei alten MFC-Versionen strMyString.GetBuffer(strMyString.GetLength());
    

    Aber meistens brauchst de das eh nicht ... und strcpy ist deshalb veraltet, weil bei der 2005er VC++ Version strcpy_s dabei ist ... das verhindert Buffer-Überläufe..


Anmelden zum Antworten