oxygen1a1 发表于 2022-8-28 17:30

EWND c++版(重写BaZzi师傅的易语言枚举push窗体)源码

本帖最后由 oxygen1a1 于 2022-8-28 17:42 编辑

运行环境:
如 WIN10
涉及工具:
如 VS2019
编程语言:
如 C/C++
以下为主题内容:
今天一天都在研究易语言的窗口创建和消息机制发现易语言还蛮难分析的,全是套的mfc,都是面向对象(thiscall函数约定),搞得我分析很头疼。
成品如图

分析结果:
易语言的底层是面向对象语言,mfc套壳,所以也有theapp这个全局变量(类)


theapp保存了很多重要的东西,其中就有EID.
EID是易语言专门用来保管窗口创建的ID,有点类似我们的IDD。EID是我自己起的名字,可能有别的官方名字。


在theapp+0x114的地方存放的是EID数组,紧接着存放的是更多


易语言创建窗体时会进行一些push
然后调用theapp.lnLoad(这是所有窗体创建必经之路,除了主窗体)
下面这个函数 就算寻找EID的函数
函数里面就有,如何在theapp里面找到EID,以及窗体数量。



分析完之后,我又参考BaZzi师傅@_BaZzi 的易语言代码,写出了一份C++ mfc版的

总体来说不算难,主要是发出来学习学习。

最后:
我没有新加任何功能,只是因为我不会易语言,BaZzi师傅发的EWND是E版的,如果有小伙伴看不懂易语言,我用MFC重写发出来分享下
**** Hidden Message *****



0×Ret 发表于 2022-8-28 17:40

{:6_216:}重新写。加油

oxygen1a1 发表于 2022-8-28 17:43

0×Ret 发表于 2022-8-28 17:40
重新写。加油

手滑了 点发帖了 刚刚没编辑好{:5_188:}

POP 发表于 2022-8-28 18:30

感谢分享

baoyue 发表于 2022-8-28 18:33

带走试试看看咯

yuchen99 发表于 2022-8-28 18:50

我要下载.

弃天帝520 发表于 2022-8-28 18:57

感谢分享

JuStkK 发表于 2022-8-28 19:26

感谢分享,拿走了

630227234 发表于 2022-8-28 20:20


带走试试看看咯

djj1076185529 发表于 2022-8-28 20:24

试试看看咯
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: EWND c++版(重写BaZzi师傅的易语言枚举push窗体)源码