【问题标题】:Timers in Windows 7Windows 7 中的计时器
【发布时间】:2012-12-02 01:49:18
【问题描述】:

我需要一个 Windows 7 中的计时器,它在时间间隔过后调用一个函数并且不会阻止它所面临的威胁。也就是说,我不能使用delay()

我一直在尝试使用IMFTimer 使用以下代码生成回调:

IMFTimer *playbackEndTimer;

HRESULT hr = CoCreateInstance(__uuidof(IMFTimer), NULL, CLSCTX_ALL, IID_PPV_ARGS(&playbackEndTimer));

CoCreateInstance 返回“类未注册”。看起来我还需要使用 IMFAsyncCallback 作为回调,但我无法从文档中弄清楚如何做到这一点。

有没有更好的方法?有人可以指出一些工作源代码吗?

【问题讨论】:

  • 您可能想看看SetTimer()。如果您已经有一个带有消息循环的窗口,那么集成到您现有的代码中并不难。
  • 谢谢,肖恩。我已经发现了。它在 DLL 中工作,而不是在窗口中,但这只是意味着我需要一个函数指针。
  • 嗯,IMFTimer 是一个接口,而不是一个 coclass。
  • 有什么区别?如何设置界面?

标签: c++ windows visual-c++ windows-7 timer


【解决方案1】:

好吧,这是一个有点愚蠢的问题。我应该使用旧的 SetTimer() 而不尝试使用 IMFTimer::SetTimer()。问题解决了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-28
    • 2010-10-07
    • 1970-01-01
    • 2011-11-25
    • 1970-01-01
    • 1970-01-01
    • 2019-03-08
    相关资源
    最近更新 更多