我正在尝试在Win32中创建类似MsgProc
的内容。当他们声明MsgProc
函数时,他们之前会有CALLBACK
类型。所以,我正在尝试创建自己的messsage函数,调用我的函数来处理消息。消息发送和处理时基本相同。我的问题是如何创建相同的流程?一个例子就是很棒。
答案 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 ++,只需在类中使用函数指针:
答案 2 :(得分:0)
如果您可以使用Boost,我肯定会给Boost.Signals一个镜头,它们以干净安全的方式提供您正在寻找的功能(Boost.Signals2即使是线程安全的方式。)< / p>