Ai đó có thể giúp tôi sử dụng chức năng gettimeofday() với Visual Studio C++ 2008 trên Windows XP? đây là mã mà tôi tìm thấy ở đâu đó trên mạng:làm thế nào để sử dụng gettimeofday() hoặc một cái gì đó tương đương với Visual Studio C++ 2008?
#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);
Năm ngoái khi tôi thử nghiệm mã này với VC++ 6, nó hoạt động tốt. Nhưng bây giờ khi tôi sử dụng VC++ 2008, tôi nhận được lỗi xử lý ngoại lệ. Vì vậy, có bất kỳ ý tưởng về cách sử dụng gettimeofday hoặc một cái gì đó tương đương?
Cảm ơn câu trả lời của bạn và mọi trợ giúp sẽ được đánh giá cao:
Bạn có thể đăng ngoại lệ bạn đang nhận được không? – Jason
Vui lòng giải thích lỗi thực tế mà bạn đang nhận được - "lỗi xử lý ngoại lệ" không phải là rất cụ thể. –
cảm ơn câu trả lời của bạn! tôi đã đăng một câu hỏi liên quan đến lỗi này và nó đang ở trên: http://stackoverflow.com/questions/2490449/how-to-solve-unhandled-exception-error-when-using-visual-c-2008 cảm ơn một lần nữa vì câu trả lời của bạn – make