void FillListBox( HWND hwndlist )
{
int iLength ;
TCHAR *pVarBlock, *pVarBeg, *pVarEnd, *pVarName ;

pVarBlock = GetEnvironmentVariable() ;
while( *pVarBlock )
{
if( *pVarBlock != '=' )
{
pVarBeg = pVarBlock ;
while( *pVarBlock++ != '=' ) ;
pVarEnd = pVarBlock - 1 ;
iLength = pVarEnd - pVarBeg ; pVarName = calloc( iLength + 1 , sizeof( TCHAR ) ) ;
CopyMemory( pVarName, pVarBeg, iLength * sizeof( TCHAR ) ) ;
pVarName[iLength] = '\0' ; SendMessage( hwndlist, LB_ADDSTRING, -1, (LPARAM)pVarName ) ;
free(pVarName) ;
}
while( *pVarBlock++ != '\0' ) ;
}
FreeEnvironmentStrings (pVarBlock ) ;}最后一句不明白.FreeEnvironmentStrings(pVarBlock)中pVarBlock的指针变了,并且指向字符内存块的末尾了,这么调用似乎是错误的.