首页 > 解决方案 > 使用 __event 在 C++ 中处理事件

问题描述

我正在尝试使用__event__hook和来学习 c++ 中的事件处理__raise。我在任何地方都找不到一个简单的代码块来演示它的基础知识。

这是我期望它的工作方式:

class C // Class with event
{
public:
    __event void DoThing(); // Event method
};

void handler() // Event handler
{
    std::cout << "Handler" << std::endl;
}

int main()
{
    C c;
    __hook(&C::DoThing, c, handler); // Subscribe the handler to the event
    __raise c.DoThing(); // Raise the event
}

尽管此代码引发了以下“错误”:

在此处输入图像描述

尽管如此,它仍然可以编译和运行,但没有打印任何内容。我究竟做错了什么?作为一个额外的问题,我将如何更改以下内容以获取 lambda 事件处理程序?

标签: c++events

解决方案


推荐阅读