AnsiString - nach char* konvertieren



  • Hi,
    ich müsste einen AnsiString in einen char konvertieren damit diesen an eine Funktion übergeben kann. Der String kommt ist ein Eintrag der in der ComboBox angezeigt wird.
    Mit einer Schleife kann ich nicht arbeiten, da der Inhalt der ComboBox dynamisch erzeugt wird und varieren kann.

    Vince

    [ Dieser Beitrag wurde am 11.05.2002 um 22:38 Uhr von Jansen editiert. ]



  • Die AnsiString-Methode c_str() liefert einen Zeiger auf ein nullterminiertes char-Array mit demselben Inhalt wie der AnsiString.

    AnsiString strText = "Ein String", strCaption = "Ueberschrift";
    MessageBox(0, strText.c_str(), strCaption.c_str(), 0);
    

    Da es sich nur um einen Zeiger auf nicht explizit reservierten Speicherplatz handelt, ist der Inhalt des Arrays nur im Moment der Übergabe garantiert. Wird der char* für weitere Operationen benötigt, muss z.B. per strcpy() eine echte Kopie des AnsiString-Inhaltes angelegt werden.

    char *ch = new char[strText.Length()+1];
    strcpy(ch, strText.c_str());
    ...
    delete [] ch;
    

Log in to reply