nntp2http.com
Posting
Suche
Optionen
Hilfe & Kontakt

Re: errore applicazione win32

Von: Quasimodo (lavoro.toglimi@ajquaglia.toglimi.it) [Profil]
Datum: 16.10.2009 13:51
Message-ID: <hb9mob$9ln$1@newsreader1.mclink.it>
Newsgroup: it.comp.programmare.win32
Minnozzi Corrado ha scritto:
> 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:
>
> 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);
>  }
>

Se non ricordo male, è meglio scrivere:

pVarNome = (TCHAR *)calloc(iLunghezza + 1, sizeof(TCHAR));

[ Auf dieses Posting antworten ]

Antworten