c ++ CALLBACK函数类型

时间:2010-11-27 07:18:03

标签: c++ winapi win32-process

我正在尝试在Win32中创建类似MsgProc的内容。当他们声明MsgProc函数时,他们之前会有CALLBACK类型。所以,我正在尝试创建自己的messsage函数,调用我的函数来处理消息。消息发送和处理时基本相同。我的问题是如何创建相同的流程?一个例子就是很棒。

3 个答案:

答案 0 :(得分:1)

除了经典函数指针和函数对象之外,您可能会对新的C ++ 0x lambdas感兴趣。

以下是将lambda传递给计时器函数的示例。

#include <windows.h>
#include <iostream>
#include <functional>

void onInterval(DWORD interval, std::function<void ()> callback) {
  for (;;) {
    Sleep(interval);
    callback();
  }
}

int main() {
  onInterval(1000, []() {std::cout<<"Tick! ";});
}

答案 1 :(得分:0)

如果您使用的是C ++,只需在类中使用函数指针:

http://www.newty.de/fpt/fpt.html

答案 2 :(得分:0)

如果您可以使用Boost,我肯定会给Boost.Signals一个镜头,它们以干净安全的方式提供您正在寻找的功能(Boost.Signals2即使是线程安全的方式。)< / p>