C/C++ C4047 diffère dans les niveaux d'indirection de 'int'?

Je suis donc tenter de compiler SQLite (à l'aide d'un autre Périphérique Cible est alors généralement utilisé) et j'en suis bizarre d'avertissement et d'erreur et je ne suis pas sûr de ce que cela signifie pour comment résoudre le problème. Ici est le message que j'obtiens après je tente de compiler à partir de Visual Studio:

4>Compiler...

4>interop.c

4> sqlite3.c(11857) : erreur C2220: avertissement traitée comme une erreur - aucun "objet" fichier généré

4> sqlite3.c(11857) : warning C4013: 'localtime' undefined; en supposant extern retournant int

4> sqlite3.c(11857) : warning C4047: '=' : 'tm *' diffère dans les niveaux d'indirection de 'int'

4> sqlite3.c(28379) : erreur C2040: 'localtime' : 'tm *(const time_t *)' diffère dans les niveaux d'indirection de 'int ()'

Et voici le code de ces lignes:

#else
{
    struct tm *pTm;
    sqlite3_mutex_enter(sqlite3MutexAlloc(SQLITE_MUTEX_STATIC_MASTER))
    pTm = localtime(&t);                                //Line 11857
    y.Y = pTm->tm_year + 1900;                          
    y.M = pTm->tm_mon + 1;                              
    y.D = pTm->tm_mday;                                 
    y.h = pTm->tm_hour;                                 
    y.m = pTm->tm_min;                                  
    y.s = pTm->tm_sec;                                  
    sqlite3_mutex_leave(sqlite3MutexAlloc(SQLITE_MUTEX_STATIC_MASTER));
}
#endif

Et la définition de la méthode pour localtime (), où il se plaint à propos de la ligne 28379 et l'indirection:

/*************************************************************************
** This section contains code for WinCE only.
*/
/*
** WindowsCE does not have a localtime() function.  So create a
** substitute.
*/
struct tm *__cdecl localtime(const time_t *t)                
{                                                               //Line 28379
  static struct tm y;
  FILETIME uTm, lTm;
  SYSTEMTIME pTm;
  sqlite3_int64 t64;
  t64 = *t;
  t64 = (t64 + 11644473600)*10000000;
  uTm.dwLowDateTime = (DWORD)(t64 & 0xFFFFFFFF);
  uTm.dwHighDateTime= (DWORD)(t64 >> 32);
  FileTimeToLocalFileTime(&uTm,&lTm);
  FileTimeToSystemTime(&lTm,&pTm);
  y.tm_year = pTm.wYear - 1900;
  y.tm_mon = pTm.wMonth - 1;
  y.tm_wday = pTm.wDayOfWeek;
  y.tm_mday = pTm.wDay;
  y.tm_hour = pTm.wHour;
  y.tm_min = pTm.wMinute;
  y.tm_sec = pTm.wSecond;
  return &y;
}

MODIFIER
Voici la structure d'une définition trop:

struct tm {
    int tm_sec;     /* seconds after the minute - [0,59] */
    int tm_min;     /* minutes after the hour - [0,59] */
    int tm_hour;    /* hours since midnight - [0,23] */
    int tm_mday;    /* day of the month - [1,31] */
    int tm_mon;     /* months since January - [0,11] */
    int tm_year;    /* years since 1900 */
    int tm_wday;    /* days since Sunday - [0,6] */
    int tm_yday;    /* days since January 1 - [0,365] */
    int tm_isdst;   /* daylight savings time flag */
};

Je n'ai pas été en mesure de comprendre ce que "'tm*' diffère dans les niveaux d'indirection de 'int'" moyens ou comment résoudre le problème, je ne suis même pas vraiment sûr de ce que la question est depuis cette compile pour Win32, mais pas pour WinCE.

Quelqu'un a une aperçu de l'avertissement\erreur ou comment résoudre le problème? Toute aide est grandement appréciée!

Merci!

OriginalL'auteur Ian Dallas | 2011-06-17