中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS开发编程 & 发展交流 (开发室) » 请教_go32_dpmi_lock_code如何锁类成员函数
作者:
标题: 请教_go32_dpmi_lock_code如何锁类成员函数 上一主题 | 下一主题
savling77
新手上路





积分 18
发帖 3
注册 2006-6-18
状态 离线
『楼 主』:  请教_go32_dpmi_lock_code如何锁类成员函数

成员函数的地址怎么获取?
谢谢!

2006-6-18 10:28
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
purm
初级用户





积分 26
发帖 9
注册 2005-10-18
状态 离线
『第 2 楼』:  

不知道,谁能说下?

2006-6-21 09:22
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
asbai
高级用户




积分 653
发帖 252
注册 2006-4-16
状态 离线
『第 3 楼』:  

看是什么成员,普通成员和静态成员直接取址就可以了。

静态方法和常规C函数其实是一样的,除了名称粉碎机制,但这不影响取址。

普通成员实际就是隐式传递一个this指针的常规函数(同样除了名称粉碎,并且某些编译器中,生成代码的调用规范也稍有不同,但这也不影响取址)。

例如:void (MyClass::* p)() = &MyClass::MyMemberFunc;  // p 指向 MyClass::MyMemberFunc 的入口地址。

但是,虚函数虽然也可以取址,但由于它是需要运行时绑定的,所以其 “指针” 其实只是该函数在类的虚表中的偏移,并不指向真正要调用的函数入口地址(该地址只有在运行时才能确定)。

所以除了虚函数外,其它函数的指针都应该可以满足楼主的需要。

[ Last edited by asbai on 2006-6-22 at 12:06 ]

2006-6-22 12:05
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: