递归火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 火山 源码 类库
查看: 7616|回复: 22
打印 上一主题 下一主题

[视窗] 求一个非静态方法的类方法回调的方法

[复制链接]

25

主题

489

帖子

1743

积分

金牌会员

Rank: 6Rank: 6

积分
1743
跳转到指定楼层
楼主
发表于 2021-7-16 09:24:23 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
本帖最后由 qaz2428119 于 2021-7-16 10:05 编辑

就如标题一样,现在很多的类方法回调,都是使用的静态或全局类方法,难道火山自身就不支持非静态或全局方法的类方法回调吗?
就比如我要子类化一个窗口,就必须使用静态方法,如果我这个类是一个功能类,难道所以的类实例都要公用这一个静态类回调吗?
公用一个类回调其实没问题,有问题的是没法在静态方法回调中区分类实例的对象
总不能啥事都交给嵌入方法实现把
要是这样岂不成了 嵌入方法不是万能的,可没有嵌入方法是万万不能的最好是 直接一些,不要用什么实例数组或指针数组
强烈要求官方能尽快解决这个问题,

回复

使用道具 举报

4

主题

62

帖子

589

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
589
23#
发表于 2024-6-16 00:46:25 | 只看该作者
  楼主是不是要这个东西:  n个回调的函数,跟着实例对象的,这样就不需要做分拣了。比如,tcp里,回来一个id,实例是100万个链接,你要根据id去找到实例,然后处理数据,你想把找这个过程省略的,对吧??
回复

使用道具 举报

25

主题

489

帖子

1743

积分

金牌会员

Rank: 6Rank: 6

积分
1743
22#
 楼主| 发表于 2023-3-2 20:49:07 | 只看该作者
fengshangren 发表于 2023-3-1 07:33
这是易语言用习惯了

这不是用习惯不习惯的问题,有很多交互需要回调,需要注册为对象实例级回调,如果是一个类通用一个回调,你没法区分到底是那个类实例需要的回调,
回复

使用道具 举报

42

主题

300

帖子

3288

积分

论坛元老

Rank: 8Rank: 8

积分
3288
21#
发表于 2023-3-1 07:33:16 | 只看该作者
这是易语言用习惯了
回复

使用道具 举报

25

主题

489

帖子

1743

积分

金牌会员

Rank: 6Rank: 6

积分
1743
20#
 楼主| 发表于 2023-2-28 21:58:26 | 只看该作者
kyozy 发表于 2023-2-28 14:18
没传this参数的, 就没办法作为成员函数, 就算火山帮你实现, 也是传参数,只不过传的地方可能是其他地方, 比 ...

就是这个问题,希望汇编高手帮忙实现这个功能
回复

使用道具 举报

4

主题

38

帖子

572

积分

高级会员

Rank: 4

积分
572
19#
发表于 2023-2-28 14:18:08 | 只看该作者
没传this参数的, 就没办法作为成员函数, 就算火山帮你实现, 也是传参数,只不过传的地方可能是其他地方, 比如寄存器, 反正都要找个地方传this
回复

使用道具 举报

21

主题

290

帖子

1291

积分

金牌会员

Rank: 6Rank: 6

积分
1291
18#
发表于 2023-2-19 20:33:52 | 只看该作者
kyozy 发表于 2021-7-23 16:55
子类化可以通过窗口句柄传递, 你再说说还有哪些不能传递参数

SetTimer 就没法传递
回复

使用道具 举报

25

主题

489

帖子

1743

积分

金牌会员

Rank: 6Rank: 6

积分
1743
17#
 楼主| 发表于 2021-9-4 19:45:53 | 只看该作者
kyozy 发表于 2021-9-1 00:06
HOOK的话必须是非成员函数, 因为要求参数一样, 而成员函数有一个隐藏的this参数, 也就是多一个参数. ...

如果是使用非成员函数,就没有办法一个类实例对应一个回调,就只能共用回调,这样就导致只能是全局函数
回复

使用道具 举报

4

主题

38

帖子

572

积分

高级会员

Rank: 4

积分
572
16#
发表于 2021-9-1 00:06:37 | 只看该作者
HOOK的话必须是非成员函数, 因为要求参数一样, 而成员函数有一个隐藏的this参数, 也就是多一个参数.
回复

使用道具 举报

25

主题

489

帖子

1743

积分

金牌会员

Rank: 6Rank: 6

积分
1743
15#
 楼主| 发表于 2021-8-20 12:52:29 | 只看该作者
kyozy 发表于 2021-8-17 14:27
这有什么问题,  要么这些你自己处理, 不是用户处理.要么如果你需要用户自己提供非静态成员函数, 那估计你 ...

就比如 HOOK 系统函数 ,你给我写个 回调试试,我怀疑你根本就没理解
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|递归火山软件开发平台 ( 鄂ICP备18029190号 )

GMT+8, 2024-6-29 15:37 , Processed in 0.097203 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表