Wie verwende ich gettimeofday () oder etwas Äquivalentes mit Visual Studio C ++ 2008?

Könnte mir bitte jemand helfen, die Funktion gettimeofday () mit Visual Studio C ++ 2008 unter Windows XP zu verwenden? Hier ist ein Code, den ich irgendwo im Internet gefunden habe:

#include < time.h >
#include <windows.h> 

#if defined(_MSC_VER) || defined(_MSC_EXTENSIONS)
  #define DELTA_EPOCH_IN_MICROSECS  11644473600000000Ui64
#else
  #define DELTA_EPOCH_IN_MICROSECS  11644473600000000ULL
#endif

struct timezone 
{
  int  tz_minuteswest; /* minutes W of Greenwich */
  int  tz_dsttime;     /* type of dst correction */
};

int gettimeofday(struct timeval *tv, struct timezone *tz)
{
  FILETIME ft;
  unsigned __int64 tmpres = 0;
  static int tzflag;

  if (NULL != tv)
  {
    GetSystemTimeAsFileTime(&ft);

    tmpres |= ft.dwHighDateTime;
    tmpres <<= 32;
    tmpres |= ft.dwLowDateTime;

    /*converting file time to unix epoch*/
    tmpres -= DELTA_EPOCH_IN_MICROSECS; 
    tmpres /= 10;  /*convert into microseconds*/
    tv->tv_sec = (long)(tmpres / 1000000UL);
    tv->tv_usec = (long)(tmpres % 1000000UL);
  }

  if (NULL != tz)
  {
    if (!tzflag)
    {
      _tzset();
      tzflag++;
    }
    tz->tz_minuteswest = _timezone / 60;
    tz->tz_dsttime = _daylight;
  }

  return 0;
}

...
// call gettimeofday()
 gettimeofday(&tv, &tz); 
 tm = localtime(&tv.tv_sec); 

Letztes Jahr, als ich diesen Code mit VC ++ 6 getestet habe, hat es gut funktioniert. Aber jetzt, da ich VC ++ 2008 verwende, erhalte ich einen Fehler bei der Ausnahmebehandlung. Gibt es eine Idee, wie man gettimeofday oder etwas Äquivalentes benutzt?

Vielen Dank für Ihre Antwort und jede Hilfe wäre sehr dankbar:

Antworten auf die Frage(3)

Ihre Antwort auf die Frage