【发布时间】:2012-05-04 03:10:28
【问题描述】:
我最近将一个非常简单的应用程序从 Windows 8 Developer Preview 移植到 Windows 8 Consumer Preview。除了现在函数GetTickCount() 似乎不再在Windows.h 或WinBase.h 中定义之外,一切似乎都运行良好。
尽管我在文件顶部定义了这些标头:
#include <Windows.h>
#include <WinBase.h>
我的代码行
unsigned int seed = GetTickCount() % UINT_MAX;
仍然给我错误:
error C3861: 'GetTickCount': identifier not found
谁能告诉我GetTickCount() 去了哪里或者我应该用什么来代替?
【问题讨论】:
-
QueryPerformanceCounter() 怎么样?
-
在 windows.h 之后包含 winbase.h 是多余的,什么也不做。 @paulsm4:可能的替代品,但它没有回答问题。
-
@paulsm4 - 这似乎比 GetTickCount 更适合我。我很欣赏这个评论。这是我的问题的一种解决方法,因为我最终想做的就是为 srand 函数播种。
-
@CareyGregory - 我想在 windows.h 之后包含 winbase.h 是多余的。感谢您为我确认。您的评论应该有助于我理解。
-
如果您需要的只是 srand 的种子,那么 QueryPerformanceCountry() 无论如何都是更好的选择,因为它具有更高的分辨率。很好的例子说明为什么你应该问你真正想解决的问题,而不是你认为你想解决的狭隘问题(我自己也做过)。