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);
}