【发布时间】:2011-01-30 11:07:03
【问题描述】:
有人可以帮我在 Windows XP 上使用带有 Visual Studio C++ 2008 的 gettimeofday() 函数吗?这是我在网上某处找到的代码:
#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);
去年我用 VC++6 测试这段代码时,它运行良好。但是现在当我使用 VC++ 2008 时,我遇到了异常处理的错误。那么对于如何使用 gettimeofday 或类似的东西有什么想法吗?
感谢您的回复,我们将不胜感激:
【问题讨论】:
-
你能发布你得到的异常吗?
-
请解释您遇到的实际错误——“异常处理错误”不是很具体。
-
感谢您的回复!我已经发布了一个关于这个错误的问题,它在:stackoverflow.com/questions/2490449/… 再次感谢您的回复
-
请不要多次发布同一个问题。与stackoverflow.com/questions/2490449/… 重复
-
抱歉有多个帖子。由于我需要帮助来解决这个问题,我在试图解决它的时间内发布了不同的问题......再次感谢!
标签: c visual-studio visual-studio-2008 visual-c++ gettimeofday