【翻译】qt内部机制及逆向

【翻译】qt内部机制及逆向

ID:27447000

大小:237.00 KB

页数:38页

时间:2018-12-03

【翻译】qt内部机制及逆向_第1页
【翻译】qt内部机制及逆向_第2页
【翻译】qt内部机制及逆向_第3页
【翻译】qt内部机制及逆向_第4页
【翻译】qt内部机制及逆向_第5页
资源描述:

《【翻译】qt内部机制及逆向》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、【翻译】Qt内部机制及逆向原作者:DanielPistelli;翻译:zouzhin参加看雪有很长一段时间了,一直无所贡献,真是有愧各位同坛好友。前不久发了个Qt求助帖http://bbs.pediy.com/showthread.php?t=132491,没人回复,刚好看到了国外牛人DanielPistelli写的《QtInternals&Reversing》,就翻译一下给需要的人做个参考。由于E文水平不高,有不对的地方多包涵,高手请直接看原文http://ntcore.com/files/qtrev.htm。开始之前,简单补充介绍一下Qt:用官网的话说:Qt——一个开源跨平台应

2、用程序和UI开发框架。优点有:针对多个平台只需编写一次代码使用Qt您只需编写一次应用程序和UI,无须重新编写源代码,便可跨不同的桌面和嵌入式操作系统进行部署,既节省了时间又降低开发成本。创建令人意想不到的用户体验QQt提供了应用程序生成块,包括庞大的可定制widget集合、图形画布、风格引擎和其他内容,您可用来生成新颖的用户界面。由于集成了3D图形、多媒体音频或视频、视觉效果、动画和自定义风格,使其在竞争中脱颖而出。事半功倍(且倍道而进)无论是使用全新的QtCreator跨平台IDE还是仅是Qt本身,Qt都易学易用。而且由于有了Qt模块化的类库,您可以更多地关注创新,无须在平台本身

3、编码上花费过多时间,这样就可将软件快速推向市场。在单一应用程序中混合网络和本地代码由于Qt集成了WebKit网络渲染引擎,您可以快速地(查看混合方式)将网络内容和服务集成到本地应用程序中,还可以利用网络环境提供您的服务和功能,让您的用户在使用过程中留下深刻印象。用本文原作者的话:“inmyopinion,theQtframeworkwillbeusedmoreandmorebysoftwaredevelopers”.个人也觉得Qt是有其优势,有兴趣的可以利用一下。—————————————————————以下正式开始———————————————————(一)内部机制我见过的最严谨

4、的C++框架就是Qt框架,Qt将C++带入了一个新的高度。Qt引入的信号(signal)和槽(slot)技术很有创意,其中一点就是,一个对象可以不要声明就可以调用其它对象的方法。为了运作信号和槽,Qt采用了动态化机制(dynamism)。这种动态化机制可以由Qt框架自动实现,也可以由开发人员通过QMetaObject类手动实现。有关信号和槽的内容可以参考http://doc.trolltech.com/4.7/signalsandslots.html。我们看一个简单的信号和槽的例子://sas.h#includeclassCounter:publicQObject

5、{Q_OBJECTpublic:Counter(){m_value=0;};intvalue()const{returnm_value;};publicslots:voidsetValue(intvalue){if(value!=m_value){m_value=value;emitvalueChanged(value);}};signals:voidvalueChanged(intnewValue);private:intm_value;};//main.cpp#include"sas.h"intmain(intargc,char*argv[]){Countera,b;QObje

6、ct::connect(&a,SIGNAL(valueChanged(int)),&b,SLOT(setValue(int)));a.setValue(12);//a.value()==12,b.value()==12b.setValue(48);//a.value()==12,b.value()==48return0;}SIGNAL和SLOT宏将括号中的内容封装成一个字符串,同时还附加一个ID号,如下所示:#defineSLOT(a)"1"#a#defineSIGNAL(a)"2"#a所以,也可以直接这么写connect函数:QObject::connect(&a,"2value

7、Changed(int)",&b,"1setValue(int)");signals和slots是Qt关键词,可以在头文件中找到,只用于Qt的元编译器(moc)。#ifdefined(QT_NO_KEYWORDS)#defineQT_NO_EMIT#else#defineslots#definesignalsprotected#endif#defineQ_SLOTS#defineQ_SIGNALSprotected#defineQ_PRIVATE_SLOT(d,sig

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。