【问题标题】:Where's GetTickCount() in Windows 8 Consumer Preview?Windows 8 Consumer Preview 中的 GetTickCount() 位于何处?
【发布时间】: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() 无论如何都是更好的选择,因为它具有更高的分辨率。很好的例子说明为什么你应该问你真正想解决的问题,而不是你认为你想解决的狭隘问题(我自己也做过)。

标签: c++ windows-8 winapi


【解决方案1】:

来自GetTickCount docs

适用于:仅桌面应用

来自GetTickCount64 docs

适用于: 桌面应用 | Metro 风格的应用程序

所以,请使用GetTickCount64

【讨论】:

  • 看起来他们正在利用这一点来弃用具有更好替代方案的旧 API。给 MS 的道具。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-04-17
  • 2012-03-24
  • 1970-01-01
  • 1970-01-01
  • 2013-08-08
  • 1970-01-01
  • 2016-06-21
相关资源
最近更新 更多