为Windows提供带时间函数的srand()

时间:2012-09-12 14:49:50

标签: c++ time visual-studio-2012 gettimeofday

我一直在寻找以下代码补丁的确切胜利。我不是一个优秀的程序员,我的代码最初是在UNix中,但我必须尽可能少地修改它。我从一些谷歌搜索中了解到,主要问题是“gettimeofday”,其中没有Win等价物。我想尽可能保留相同的程序结构。

struct timeval tv;
time_t curtime;
gettimeofday(&tv, NULL);    // ???
curtime = tv.tv_usec;
srand(tv.tv_usec); //time(&curtime)

2 个答案:

答案 0 :(得分:1)

如果您需要随机种子作为亚秒数,请执行以下操作:

#ifdef WIN32
::srand( GetTickCount() );
#else
//your existing code
#endif

答案 1 :(得分:1)

您可以使用Windows本机函数GetSystemTimeAsFileTime()来获取时间并编写一个包装器以将其置于struct timeval结构中。