CString und Co.



  • CString cuser;
    	char* user2="";
    	GetDlgItemText(IDC_USER,cuser);
    	strcpy(user2,cuser);
    

    strcpy macht einen Fehler in strcat.asm:

    Unhandled exception at 0x10215660 (msvcr71d.dll) in chat.exe: 0xC0000005: Access violation writing location 0x0042788e.
    

    an der Stelle(in strcat.asm):

    byte_0:
            mov     [edi],dl
            mov     eax,[esp+8]         ; return in eax pointer to dest string
            pop     edi
            ret
    

    (2.Zeile)

    Wie kann man das Problem lösen?

    MfG,
    C++ Core



  • Also was hier falsch ist, ist schnell erklärt.

    char* user2="";
    

    user2 zeigt ins Nichts. So gehts (vielleicht)

    char user2[255];
    //oder
    char *user2 = malloc(//siehe MSDN)
    

    Grundsätzlich gilt, sowohl für diese Frage als auch für alle anderen Fragen von dir davor:
    Es ist keine gute Idee mit MFC zu beginnen, wenn dein Wissen über C++ und Objekte offensichtlich so gering sind. Ich will dich damit nicht beleidigen, ich spreche nur aus eigener Erfahrung und den blutigen Weg den ich beschreiten musste und wohl auch noch immer gehe, weil ich ebenfall mit der MFC begonnen habe.



  • Ich bekomme zu Weihnachaten (hoffentlich) ein sehr gutes Buch zur Programmierung, mit C++ und auch MFC



  • C++ Core schrieb:

    Ich bekomme zu Weihnachaten (hoffentlich) ein sehr gutes Buch zur Programmierung, mit C++ und auch MFC

    Das hoffen die meisten hier auch 😃



  • Nur ich habe es mir gewünscht! (ich habe soagr die ISBN angegeben!)
    Aber lassen wir das jetzt, es weicht zu sehr vom Thema ab!



  • Mal nbe frage. Wofür braucht du eine char-Zeiger wenn es doch eine CString gibt.



  • malloc?

    Das gibts nocht?

    Ich überprüf das simple mit:
    if(!pointer)

    greetz
    SLi


Anmelden zum Antworten