CString in char* umwandeln



  • Hallo,

    Wie kann ich eine "CString" variable in eine "char*" variable umwandeln? 🙄
    Ist das uebehaupt moeglich?



  • Servus,

    die erste Frage die zu diesem Thema immer gestellt wurde ist:
    "Warum willst du das überhaupt machen?"
    und diese Frage stelle ich jetzt auch. Warum?
    Willst du den Inhalt kopieren?
    geht z.B. mit:

    TCHAR cFileName[256];
    memset (cFileName, 0, sizeof(cFileName));
    
    CString strFileName;
    
    strFileName = "C:\\Test\\";
    strcpy(cFileName, strFileName);
    

    dann steht der Kram in cFileName. oder warum willst du das machen?

    *winke*
    Hellsgore



  • Bergerch schrieb:

    Hallo,

    Wie kann ich eine "CString" variable in eine "char*" variable umwandeln? 🙄
    Ist das uebehaupt moeglich?

    umwandeln direkt nicht, allerdings bekommst du mit CString::GetBuffer, einen Zeiger auf den Buffer der Größe, die du als ersten Parameter angibst. CString::ReleaseBuffer nicht vergessen.



  • CString myStrng;
    char *szTextOnly;
    char cLetter;
    
    szTextOne = myString->GetString();
    
    cLetter = myString->GetAt(0);
    


  • Warum will ich dass machen?
    Also, ich habe ein Program, in welchem die Labels von einer Datenbank eingelesen werden. Alle Labels werden schoen zugeordnet, und man kann im Programm wahrend Laufzeit auch die Sprache aendern. Diese "Labels" werden als CString eingelesen, doch ich habe ein "Propertysheet" in meinem Programm und die Beschriftung dessen Tabs soll auch angepasst werden. Das geht nur mit einem char[100] oder so, da man die Tabs nur mit einer TC_ITEM-Struktur veraendern kann. Also muss ich, um die Tabs zu veraendern, den Eingelesenen CString in ein char* oder char[] verwandeln.

    :p



  • HI,

    der passende Befehl zum Umwandeln eines Strings in ein char[] ist dieser:

    char text[1000];
    _tcscpy(text, Bezeichner_des_CString_welcher_umgewandelt_werden_soll_hier_hin);

    und schon hast Du ein deinen String in ein char[] geballert.

    Einen Pointer draus zu machen duerfte nun kein Problem mehr sein.... 😉

    Gruss
    Guenni


Anmelden zum Antworten