2 Fragen



  • Da ich eigentlich noch C++ Noob bin, hab ich mal 2 Fragen:

    WritePrivateProfileString("Daten","test1",edit1->Text,"test.ini");
    WritePrivateProfileString("Daten","test2",edit2->Text,"test.ini");
    WritePrivateProfileString("Daten","test3",edit3->Text,"test.ini");
    

    Folgende(r) Fehler kommt

    BCB 6 schrieb:

    [C++ Fehler] speedymaker.cpp(175): E2034 Konvertierung von 'AnsiString' nach 'const char *' nicht möglich
    [C++ Fehler] speedymaker.cpp(175): E2342 Keine Übereinstimmung des Typs beim Parameter 'lpString' ('const char *' erwartet, 'AnsiString' erhalten)

    Also meine Frage: Wie konvertiere ich ein TEdit auf const char *?

    Wie verbinde ich text uns variablen, also z.B.

    char test[10];
    test = "du";
    Label1->Caption = "Hallo " & test;
    

    (Bin VisualBasic verseucht, also & geht nicht, . auch nicht und + auch ned.)



  • Hallo,

    1. Die Eigenschaft Text von TEdit ist ein Objekt der Klasse AnsiString und daher zu C-Strings eigentlich inkompatibel. Sie hat aber eine Methode die einen Zeiger auf einen C-String liefert:

    edit1->Text.c_str()
    

    2. Zunächst mal musst du strcpy() verwenden, um einen String in ein char-array zu kopieren. Desweiteren kannst du char-array nicht einfach mit "+" oder "&" verketten. Das geht nur mit AnsiStrings oder anderen String-Klassen mit entsprechend überladenen Operatoren. Für C-Strings gibts die Funktion strcat(). In deinem Fall könntest du den C-String auch nach AnsiString casten und dann verketten:

    char test[10];
      strcpy(test, "du");
      Label1->Caption = "Hallo " + (AnsiString) test;
    

    MfG
    tuküe



  • 😃 danke, luppt prima, wär ich nie drauf gekommen 😉 👍 👍


Anmelden zum Antworten