Fehler



  • Hi Leute

    Ich hab bei mir einen Fehler denn ich nett verstehen undzwar sagt er mir Fehlerhafte deklaration undzwar bei Sender und Text.

    [cpp]
    case IDC_SENDEN:
    {
    BOOL correct = FALSE;
    const int len = GetWindowTextLength(GetDlgItem(hwnd, IDC_SENDER));
    char Sender[len];
    GetDlgItemText(hwnd, IDC_SENDER, Sender, len+1);
    if(len==0)
    {
    MessageBox(hwnd, "Keine Eingabe bei Sender", "Hinweis",
    MB_ICONEXCLAMATION | MB_OK);
    }else correct=TRUE;

    const int len1 = GetWindowTextLength(GetDlgItem(hwnd, IDC_EMAIL_TEXT));
    char Text[len1];
    GetDlgItemText(hwnd, IDC_EMAIL_TEXT, Text, len1+1);

    if(len1==0)
    {
    MessageBox(hwnd, "Keine Eingabe bei E-Mail Text", "Hinweis",
    MB_ICONEXCLAMATION | MB_OK);
    }else
    {
    correct=TRUE;
    }
    if(correct)
    {
    ...
    }[/cpp]



  • Hi,
    wenn du ein Array erstellst, ist es immer statisch und du musst eine feste Größe festlegen (z.B. char text[10]). Willst du es dynamisch benutzen, musst du Speicher zu Lauftzeit belegen (z.B. mit malloc oder VirtualAlloc).

    char *Sender=NULL;
    Sender=(char*)malloc(len*sizeof(char));
    if(!Sender)
    {
    //Error
    }
    
    strcpy(Sender,GetWindowText(...));
    //...
    

    M.T.

    [ Dieser Beitrag wurde am 02.01.2003 um 08:25 Uhr von Manuel editiert. ]



  • Oder besser mit new und delete:

    // ...
    char *pcBuf = new char[len];
    delete[] pcBuf;
    // ...
    

    cya 🙂

    [ Dieser Beitrag wurde am 02.01.2003 um 12:41 Uhr von MagiC Creator editiert. ]


Anmelden zum Antworten