Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [C/C++] Perchè mi dà sempre NULL....

    Ho un GRANDISSIMO problema.
    è da oggi che ci sbatto la testa e niente, anche altra gente non riesce a capire perchè non va, vi prego aiutatemi siete la mia ultima speranza :°°°

    Vi pasto l'inizio di questa subroutine

    void GameDialog::updateMosse()
    // aggiorna la lista di mosse effettuate
    {
    string history;
    char *st=NULL;
    int length;

    // SetWindowText(hStatus, "E CHE CACCHIO");
    // storia delle mosse precedente
    length = GetWindowTextLength(hStatus);
    GetWindowText(hStatus, st, length);

    Il mio problema è che "GetWindowText(hStatus, st, length);" mi restituisce sempre NULL nella stringa st anche scrivendo qualcosa in hStatus immediatamente prima di questa chiamata.
    Grazia a GetLastError() vedo il codice dell'errore (1400) e andando nella tabella scopro che al codice 1400 corrisponde "Invalid window handle. ERROR_INVALID_WINDOW_HANDLE" il che mi fa pensare che hStatus sia l'handle invalido... MA NON E' VERO!!! hStatus è validissimo infatti se metto la "SetWindowText(hStatus, "E CHE CACCHIO");" levandoci il commento nella finestra viene scritto correttamente quindi hStatus è valido ma mi dice "invalid window handle".
    Ho provato anche ad usare "GetDlgItemText(...)" al posto di "GetWindowText(...)" ma il risultato è sempre lo stesso... sempre NULL...

    vi pasto anche direttamente dall'msdn l'header della subroutine

    int GetWindowText(
    HWND hWnd, // handle to window or control with text
    LPTSTR lpString, // address of buffer for text
    int nMaxCount // maximum number of characters to copy
    );

    Ho provato a cambiare la variabile "st" al posto di "char *" mettendo LPTSTR e non va lo stesso, cmq il fatto è che "char *" dovrebbe andare bene cmq....


    AIUTATEMI NON RIESCO A CAPIRE COME MAI!!!!
    VI PREGOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
    AIUTATEMIIIIIIIIIIIIIIIIIIIII


    spero in numerose risposte....


    PS: se non vi è chiaro qualcosa ditemelo e vi spiego meglio


    GRAZIE ANCORA PER L'ATTENZIONE!

  2. #2
    uffa 19 visite e manco una risposta...
    è mai possibile che non c'è nessuno che mi sa aiutare?!?!?

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2003
    Messaggi
    311
    con
    codice:
    char *st=NULL;
    crei soltanto un puntatore, ma non allochi spazio per la stringa, per cui:
    codice:
    char *st=NULL; 
    int length; 
    length = GetWindowTextLength(hStatus); 
    st=new char[length+1]; // serve uno spazio in più per il fine stringa
    GetWindowText(hStatus, st, length+1); 
    // faccio quello che devo fare con st e poi cancello
    delete[] st;

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.