如何进行静态回调 c++
How to make static callback c++
我有两个文件,一个主文件和一个类。我想在类(void(中调用一个函数,并从该函数内部调用main中的另一个函数。在进行大量搜索之前,我找到了使用回调的方法,代码最终如下所示:
文件
#include <functional>
#include <iostream>
class Foo
{
public:
std::function<void()> onCallBackResult;
void start(std::function<void()> callback)
{
onCallBackResult = callback;
second();
}
void second() { //Needs to be static here
onCallBackResult();
}
};
void onCallBackResult()
{
std::cout << "Resultn";
}
int main() {
Foo foo;
foo.start(std::bind(onCallBackResult));
}
它运行良好,但问题是我真的需要使start
静态,因为它可以从 Windows api 与 WndProc 一起使用,但我也不能使类中的onCallBackResult
静态,因为我想知道是否有办法解决此问题或任何其他从main
调用函数的方法。
谢谢!
你所需要的只是一个原型。这些机制(std::bind
、std::function
(都不需要。在"Foo.h"中:
void onCallBackResult();
然后更改函数以调用该函数:
void start()
{
//Do some tasks
onCallBackResult();
}
相关文章:
- 架构决策:返回std::future还是提供回调
- 正在为Xtensa simcall函数编写回调函数
- 如何在C++中使用非静态成员函数作为回调函数
- FLTK:按下哪个按钮 - 将数字传递给按钮的回调 (lambda)
- 在简单示例中,Python3 + ctypes 回调会导致内存泄漏
- 用于在回调中调用解析器的设计模式
- 如何使用C++对象的成员函数作为 C 样式回调?
- Java从C++回调到C++回调
- 如何将成员函数作为回调参数传递给需要"typedef-ed"自由函数指针的函数?
- 从不同的 cpp 调用回调函数会导致bad_function_call
- pcap_handler回调仅在使用 NPCAP v0.9991 时包含空数据包
- 不带轮询的 SDL2 事件回调
- C++存储带有可变参数的回调
- 如何使用 Node-addon-API 实现 node-nan 回调
- 处理影响跨不同线程共享对象的定时回调的最佳方法是什么?
- 访问类C++ C 样式回调
- 处理类内的回调时,必须调用对非静态成员函数的引用
- 如果 C 函数仍然可以间接执行(通过回调函数),那么将它声明为静态函数是否是一种不好的做法?
- 在C++中实现回调
- C++ 事件管理器的回调,使用 std::function 和 std:bind 以及派生类作为参数