Editbox bräuchte Tipps



  • also kompilieren läuft ohne Probleme

    In der Deklaration hab ich in den String artnum den Text "Currywurst" geschrieben.

    wenn ich das Programm dann starte und was in die beiden Editboxen schreibe dann z.B. in die Editbox der Artikel Nr.:"123ab56" und in die für die Menge "123"
    das soll dann in eine Textdatei gespeichert werden.

    Da dann aber in der Textdatei dann "Artikel NR.: Currywurst Menge:123" steht denk ich das mein Fehler in der GetDlgItemText() liegt weil dort anscheinend der Inhalt der Editbox nicht in die Variable geschrieben wird.



  • Wie sieht denn den neue Quellcode aus? Oder hast du nichts geändert? Ich habe dir doch schon geschrieben was falsch ist.
    Achso nochwas das geht auch so char artnum[40]= "Curywurst"; 😉

    schirrmie



  • So sieht der Quelltext jetzt aus hab nicht viel geändert

    wchar_t artnumbuff[40];
    char artnum[40]="Currywurst";
    ...
    artnum[40]=GetDlgItemTextW(hwndDlg, DID_EDITSAMPLE,artnumbuff,39);
    


  • artnum[40]=GetDlgItemTextW(hwndDlg, DID_EDITSAMPLE,artnumbuff,39);
    

    Warum übergibst du den return Value in artnum? Weist du Überhaupt was GetDlgItemTextW zurück liefert?

    If the function succeeds, the return value specifies the number of characters copied to the buffer, not including the terminating null character.

    If the function fails, the return value is zero. To get extended error information, callGetLastError.

    Du weist aber schon das der Inhalt der Editbox in deinem fall in artnumbuff und nicht in artnum gespeichert wird oder?

    schirrmie



  • au da hätte ich selbst drauf kommen können...

    ich geb jetzt beim fprintf() die artnumbuff aus aber es wird nur die erste stelle in die Textdatei geschrieben. jetzt bin ich mir aber nicht sicher ob das Problem noch beim einlesen liegt oder ob es bei der Ausgabe liegt.

    Hier mal der geänderte part:

    GetDlgItemTextW(hwndDlg, DID_EDITSAMPLE,artnumbuff,39);
    
    				Datei=fopen("/BACKUP/scanlogfile.txt","at");
    				fprintf(Datei,"Artikel Nr.: %s\tMenge:%i \n", artnumbuff, menge);
    				fclose(Datei);
    


  • Was heist nur die erste Stelle wird geschrieben?

    schirrmie



  • Wenn ich z.B. in die erste Editbox "wasd" reinschreibe landet nur das "w" in der Textdatei



  • guck dir mal deine typen an die du benutzt entweder du machst alles Unicode oder nix 😉
    also entweder

    wchar_t artnumbuff[40];
    char artnum[40]="Currywurst";
    ...
    artnum[40]=GetDlgItemTextW(hwndDlg, DID_EDITSAMPLE,artnumbuff,39);
    [b]fwprintf(...)[/b]
    

    oder

    char artnumbuff[40];
    GetDlgItemText(hwndDlg, DID_EDITSAMPLE, artnumbuff, 39);
    fprintf(...);
    

    schirrmie



  • wenn ich es nach der ersten Methode mache kommt folgende Fehlermeldung

    error #2140: Type error in argument 2 to 'fwprintf'; found 'char *' expected 'const wchar_t *'.
    

    hier die Zeile dazu

    wchar_t artnumbuff[40];
    
    fwprintf(Datei,"Artikel Nr.:%s \tMenge:%i \n",artnumbuff, menge);
    

    casten hab ich auch versucht lies sich dann auch kompilieren aber da wird der reinste schwachsinn in die Textdatei geschrieben.

    Wenn ich die andere Variante benutze sagt mir der kompiler

    error #2140: Type error in argument 3 to 'GetDlgItemTextW'; found 'char *' expected 'wchar_t *'
    

    wenn ich dann caste bin ich nicht weiter als vorher



  • GetDlgItemTextA(hwndDlg, ID_EDITSAMPLE,artnumbuff,39);
    

    die .obj konnte ich ohne Fehler kompilieren aber zur exe kommt es nicht


Anmelden zum Antworten