Ciao ho un'applicazione win32 (sto seguendo il libro "Programming Windows" di Petzold);
quando compilo mi da questo errore "error C2440: '=': impossibile convertire da 'void *' a 'TCHAR *'"
in questa riga:
"pVarNome = calloc(iLunghezza + 1, sizeof(TCHAR));"
Uso Visual C++ 2008 Express edition, questa è la funzione in cui è inserita quella riga:
codice:void RiempiListBox(HWND hwndList) { int iLunghezza; TCHAR *pVarBlocco, *pVarInizio, *pVarFine, *pVarNome; //ottiene un puntatore a un blocco di memoria che contiene tutti i nomi e i valori delle variabili di ambiente pVarBlocco = GetEnvironmentStrings(); while (*pVarBlocco) { if (*pVarBlocco != '=') //salta i nomi di variabili che iniziano con '=' { pVarInizio = pVarBlocco; //inizio dei nomi di variabili while (*pVarBlocco++ != '='); //scansiona fino a '=' pVarFine = pVarBlocco - 1; //punta al segno '=' iLunghezza = pVarFine - pVarInizio; //lunghezza del nome di variabile pVarNome = calloc(iLunghezza + 1, sizeof(TCHAR)); //alloca memoria per il nome di variabile e che termina con zero; CopyMemory(pVarNome, pVarInizio, iLunghezza * sizeof(TCHAR)); //copia il nome di variabile e aggiunge uno zeroAA pVarNome[iLunghezza] = '\0'; SendMessage(hwndList, LB_ADDSTRING, 0, (LPARAM)pVarNome); //mette il nome di variabile nella list box (aggiunge ogni stringa nella list box) free(pVarNome); //libera la memoria } while (*pVarBlocco++ != '\0'); //scansiona fino allo zero terminante } FreeEnvironmentStrings(pVarBlocco); }

Rispondi quotando