gpt4 book ai didi

C++ 回调函数

转载 作者:可可西里 更新时间:2023-11-01 11:21:30 24 4
gpt4 key购买 nike

我正在使用 afxwin SetTimer 函数设置计时器。该函数接收三个参数,其中一个是回调函数。

我在一个类中设置了一个回调函数(我们称它为 NS)并尝试将其作为参数传递。但是编译器提示说:

void (__stdcall NS::*) (HWND, UINT, UINT_PTR, DWORD);

不同于:

void (__stdcall *) (HWND, UINT, UINT_PTR, DWORD);

我该怎么办?

最佳答案

制作函数static *。否则它甚至不是一个函数,而是一个成员 函数,这是一种非常不同的动物。此外,正如您所说,“将类中的函数作为回调传递”是没有意义的:非静态成员函数与 对象实例 的状态相关联那个类。

(此外,搜索此站点,这个问题已被问过一百万次,整个 SO 中有许多不错的选择。)

*) 正如@James 指出的那样,如果回调函数具有 C 接口(interface),这还不够,在这种情况下,您还需要一个免费的 extern "C"包装函数。

关于C++ 回调函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8184209/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com