delete char mit SendMessage(..WM_TEXT) ???



  • ich erzeuge einen string mit new der die größe des inhalts eines edits entspricht (und etwas größer)
    ,um etwas einfügen zu können (zeile hinzufügen)

    wenn ich aber am ende delete txt machen will gibts ein fehler
    - wie kann ich das umgehen (ohne char txt[1000] zu schreiben)
    oder gibt es einen besseren weg eine zeile in ein mehrzeiliges edit feld
    hinzuzufügen

    HWND handle = GetDlgItem(WinMainClass.hDialog,IDC_LOGMEMO2);
    
      int len = GetWindowTextLength(handle);
    
      int cmplt = len+strlen(text)+2;
      char *txt = new char[cmplt];
    
      strcpy(txt,"");
    
      if (len > 0)
        GetWindowText(handle,txt,len);
    
      strcat(txt,text);
      strcat(txt,"\r\n");
    
      //SetWindowText(handle,txt);
      SendDlgItemMessage(WinMainClass.hDialog,IDC_LOGMEMO2,WM_SETTEXT,0,(LONG)text);
      delete txt; //<<--- Access violation (kurz danach)
    


  • Jedem new sein delete.
    Jedem new**[]** sein delete**[]**.



  • ne liegt nicht daran,

    sieht so aus als würde der string nach dem WM_SETTEXT dem
    memo gehören ?=



  • GetWindowText(handle,txt,len);

    Wieso gibst Du dem Befehl nicht die Chance, ein abschliessendes 0-Zeichen anhängen zu dürfen?


Anmelden zum Antworten