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!