社区
C++ 语言
帖子详情
请教:如何把一个类的成员函数作为回调参数?
assiss
2004-05-04 02:11:25
例如:
WNDPROC oldproc=&classm::funcm;
gcc编译报错:
converting from `LRESULT (classm::*)(HWND__*,
unsigned int, unsigned int, long int)' to `LRESULT (*)(HWND__*, unsigned
int, unsigned int, long int)'
...全文
115
12
打赏
收藏
请教:如何把一个类的成员函数作为回调参数?
例如: WNDPROC oldproc=&classm::funcm; gcc编译报错: converting from `LRESULT (classm::*)(HWND__*, unsigned int, unsigned int, long int)' to `LRESULT (*)(HWND__*, unsigned int, unsigned int, long int)'
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
cngdzhang
2004-05-04
打赏
举报
回复
因为c++要支持多态
一个函数同一个名字可以有好几个实现的
void print(char *s)
void print(string s)
这个取不了地址了把?
而且c++还有运行时的动态绑定
ghlpj
2004-05-04
打赏
举报
回复
好象C++对象模型里说过Class::Func实际上是取的相对于this的偏移量,回去验证一下
assiss
2004-05-04
打赏
举报
回复
定义成static的确可以,
但是新的问题又有了。呵呵。
所以准备放弃掉用类成员函数,
直接使用全局函数吧。
下午结帖(我们这里网络基本瘫痪了,没想到大家都还是通顺的。羡慕啊。)
blizzard2000
2004-05-04
打赏
举报
回复
to cngdzhang
你用的什么编译器?我怀疑这个跟编译器有关。(纯属猜测)
flyingxu
2004-05-04
打赏
举报
回复
怎么理解类的成员函数地址是不确定的,而静态、全局函数的地址是确定的?
cngdzhang
2004-05-04
打赏
举报
回复
静态函数的地址是确定的
但是取地址的时候
要加上类名
例如
class A
{
public :
static void f(){}
}
用的时候是
A::f()
如果用作回调函数,编译器会报错的
我看了好多程序(EnumChildWindow等API函数,Hook),它们的回调函数都是全局的
blizzard2000
2004-05-04
打赏
举报
回复
to cngdzhang
静态函数的地址也是确定的
chenqing1128
2004-05-04
打赏
举报
回复
学习
blizzard2000
2004-05-04
打赏
举报
回复
定义成静态函数看可否?
cngdzhang
2004-05-04
打赏
举报
回复
只能是一个全局函数 带CALLBACK类型的
全局函数的地址是确定的
cngdzhang
2004-05-04
打赏
举报
回复
不能的
类的成员函数取的地址是不确定的
assiss
2004-05-04
打赏
举报
回复
一旦能上网,问题就得到解决了。
这么快啊。
谁先进来这100分白给他了。
C++11
成员函数
作为
回调
函数使用示例
本文介绍了C++11中std::bind和std::function的使用,如何解决普通
成员函数
作为
回调
函数的问题。通过示例展示了它们如何创建新的调用对象、绑定
参数
,并在
回调
注册中应用。同时,文中还提供了
一个
实际的客户端-服务器
回调
注册的例子,解释了如何在
类
中使用std::bind进行
成员函数
的
回调
注册。
封装windows的
回调
函数
这篇博客探讨了在Windows程序设计中如何封装
回调
函数。由于
回调
函数需要严格的
参数
表,不能直接使用
类
的
成员函数
。作者提出了两种解决方案:1) 使用静态
成员函数
,但这样会限制对非静态成员的访问;2) 声明
回调
函数为友元函数,允许访问
类
的私有成员。文章通过示例代码详细解释了这两种方法,并提供了
一个
使用静态
成员函数
实现的`Frame`
类
,展示了如何在
回调
函数中访问
类
的私有变量。
CThreadPool
本文介绍了
一个
基于C++实现的线程池
类
CThreadPool,该
类
通过QueueUserWorkItem方法来调度任务。该方法接受
一个
成员函数
指针、对象实例指针以及标志位作为
参数
,并使用std::auto_ptr来管理
回调
类
型实例。
调用函数不同
参数
以及返回值
本文介绍了
一个
通用模板
类
CTC的实现,该
类
利用std::function存储
回调
函数,并通过模板
成员函数
Exec使用转发
参数
包的方式调用存储的函数。示例展示了如何实例化模板
类
并使用不同
类
型的函数。
function 和 bind 的故事
本文介绍了
一个
使用C++实现的函数绑定与
回调
的例子。通过定义
一个
类
A,并在其中实现方法test来接受
一个
函数对象作为
参数
,然后调用这个函数对象。此外,还演示了如何使用std::bind绑定
成员函数
hello到test方法中。
C++ 语言
65,213
社区成员
250,514
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章