- 博客(81)
- 资源 (11)
- 收藏
- 关注
转载 QtCreator源码分析 -3.插件管理系统
2013年11月14日 11:34:31 Trump_zhai 阅读数:3615 首先,我们先看看QT的插件系统。 QT的插件模型类似于在COM本质论前面部分内容里描述的模型(不过还没有去看具体的源码,实现机制是否一样还不确定)。动态链接库通过继承一个简单接口的纯虚类,在需要的时候动态载入,然后通过纯虚类的接口函数进行进一步的访问。从而为动态链接库提供一个统一的发现方式。 在QT的插件...
2019-01-16 09:16:11
483
转载 深入理解QtCreator的插件设计架构(转)
深入理解QtCreator的插件设计架构 +++ date = "2017-04-28T00:59:02+08:00" draft = true title = "深入理解QtCreator的插件设计架构" blog ="blog.qizr.tech" +++ 基于插件的设计好处很多,把扩展功能从框架中剥离出来,降低了框架的复杂度,让框架更容易实现.扩展功能与框架以一种很松的方式耦合,两者在保...
2019-01-14 10:25:09
544
1
转载 python
api: https://www.dlitz.net/software/ ku: https://pypi.python.org/pypi wendang: https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001431756919644a79
2017-09-27 14:44:39
447
转载 收藏
值得学习的C语言开源项目 - 1. Webbench Webbench是一个在Linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能,最多可以模拟3万个并发连接去测试网站的负载能力。Webbench使用C语言编写, 代码实在太简洁,源码加起来不到600行。 下载链接:http://home.tiscali.cz/~cz2105
2017-07-04 10:46:24
610
转载 log
#ifndef COMMAND_DEFINE_H #define COMMAND_DEFINE_H //日志级别的提示信息 static const char * KEYINFOPREFIX = " Key: \n"; static const char * ERRORPREFIX = " Error: \n"; sta
2017-06-05 09:18:15
480
转载 ubuntu12.04下安装openssl
ubuntu12.04下安装openssl 1、卸载原来的openssl sudo apt-get remove openssl libssl-dev 2、下载openssl-1.0.1g.tar.gz 3、安装openssl: 安装包。(解压目录为OPENSSL) tar –xvf openssl-1.0.1.tar.gz 进入目录OPENSSL
2017-04-07 08:04:29
3148
转载 Linux系统安装 OpenSSL两种方法
OpenSSL是一个开源的ssl技术,由于我需要使用php相关功能,需要获取https的文件所以必须安装这个东西了,下面我整理了两种关于OpenSSL安装配置方法。 方法一,编译安装 OpenSSL 2.1、准备工作 系统版本:Ubuntu-10.10-Server-I386 更新源:apt-get update 升级软件:apt-get upgrade 更新系统:apt-
2017-03-16 19:46:46
12036
转载 解读DES和SM4、RSA和SM2及SM3
解读DES和SM4、RSA和SM2及SM3 安全是智能卡的核心,而算法是安全的基础。 国密算法由国家密码局发布,包含SM1\ SM2\ SM3\ SM4\ SSF33算法;国际算法由美国的安全局发布,是现今最通用的商用算法。今天小钞就以分组密码算法(DES和SM4)、公钥密码算法(RSA和SM2)、摘要算法(SM3)为例,和大家谈谈国际算法和国密算法
2017-03-16 15:24:59
5141
转载 软件反破解的几个思路
1、检测调试寄存器 (1)检测 softice 等系统级调试器 检测softice的方法有很多.检测主要在驱动里中实现。 (2)监测用户级调试器用户级调试器具有一下几个特征: 用户级调试器是采用microsoft提供的dbghelp.dll库来实现对软件跟踪调试的。 被调试的软件其父进程为调试器。 所以可以采用如下的方法来检测:
2017-03-10 18:24:28
4114
转载 Linux中的likely()和unlikely()
likely()与unlikely()在2.6内核中,随处可见,那为什么要用它们?它们之间有什么区别呢? 首先明确: if (likely(value))等价于if (value) if (unlikely(value))等价于if (value) 也就是说likely()和unlikely()从阅读和理解的角度是一样的。 这两个宏在内核中定义如下: #de
2017-03-02 10:39:33
512
转载 __ATTRIBUTE__
GNU C 的一大特色就是__attribute__ 机制。__attribute__ 可以设置函数属性(Function Attribute )、变量属性(Variable Attribute )和类型属性(Type Attribute )。 __attribute__ 书写特征是:__attribute__ 前后都有两个下划线,并切后面会紧跟一对原括弧,括弧里面是相应的__attribute
2017-03-02 09:51:06
524
转载 Linux IP_FORWARD说明
--Linux IP_FORWARD说明 ip地址分公有地址和私有地址,public address是由INIC(internet network information center)负责,这些ip地址分配给注册并向INIC提出申请的组织机构。通过它访问internet.private address是属于非注册地址,专门为组织内部使用,private ip address是不可能直接
2017-02-27 15:38:25
1982
转载 vs2013编译错误代码锦集
编译器错误 C2001 错误消息 常数中有换行符 字符串常数不能继续到第二行,除非进行下列操作: •用反斜杠结束第一行。 •用一个双引号结束第一行上的字符串,并在下一行用另一个双引号
2017-02-27 13:35:34
3490
转载 Computer Security Conference Ranking and Statistic
Ranking Note: How to judge how good a conference is? In my opinion, here are several criterias: Acceptance ratio: definitely an important metric (maybe the easiest metric that can be quantif
2017-02-23 14:55:45
604
转载 VS2010中编译openssl的步骤和使用设置
一.VS2010中编译openssl的步骤 版本号:openssl-1.0.1e (之前在VS2010种编译0.98版本的没有通过,但在VS2005中曾经编译成功) 1.下载 OpenSSL http://www.openssl.org/,并解压到d:\openssl-1.0.1e目录(也可自己指定路径和目录名称) 2.下载 from http://www.activestate
2017-02-20 08:29:41
623
转载 设计模式
单一职责原则(Single Responsibility Principle) 定义:不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。 问题由来:类T负责两个不同的职责:职责P1,职责P2。当由于职责P1需求发生改变而需要修改类T时,有可能会导致原本运行正常的职责P2功能发生故障。 解决方案:遵循单一职责原则。分别建立两个类T1、T2,使T1完成职责P1功能,T2完成职责
2016-04-05 11:07:33
541
转载 注册表
注册表结构 HKEY_LOCAL_MACHINE根键(一) HKEY_LOCAL_MACHIN根键中存放的是用来控制系统和软件的设置。由于这些设置是针对那些使用Windows系统的用户而设置的,所以它与具体用户无关,它是一个公共配置信息,大家只须作一个了解就可以了。 HKEY_LOCAL_MACHINE包括了如下五个子键,如图: HARDWARE子键: 该子键
2016-03-22 10:02:25
2236
转载 分区
什么是MBR和主引导引导扇区?什么是主分区、扩展分区、逻辑分区?什么是活动分区、引导分区、系统分区、启动分区?一下子罗列这么多概念,恐怕很多人都搞不清它们的区别和联系吧。网上虽然不少解释,但很多是模棱两可甚至是错误的,反而越弄越糊涂。猫猫煞费苦心的把这一大串概念研究了很长时间,试图搞明白,为了以后查阅方便,于是把对这些概念的理解总结了一下。而要想分清这些概念,真要费一点脑筋啊! 一、MBR
2015-08-31 17:00:56
456
转载 用VC进行COM编程所必须掌握的理论知识
一、为什么要用COM 软件工程发展到今天,从一开始的结构化编程,到面向对象编程,再到现在的COM编程,目标只有一个,就是希望软件能象积方块一样是累起来的,是组装起来的,而不是一点点编出来的。结构化编程是函数块的形式,通过把一个软件划分成许多模块,每个模块完成各自不同的功能,尽量做到高内聚低藕合,这已经是一个很好的开始,我们可以把不同的模块分给不同的人去做,然后合到一块,这已经有了组装的概念
2015-08-23 23:40:04
486
转载 vc中调用Com组件的方法详解
需求: 1.创建myCom.dll,该COM只有一个组件,两个接口: IGetRes--方法Hello(), IGetResEx--方法HelloEx() 2.在工程中导入组件或类型库 clip_image001 #import "组件所在目录myCom.dll" no_namespace 或 clip_image001 #import "类型库所在目录myCom.tlb"
2015-08-23 23:35:14
539
转载 全文检索学习
觉先 博客园首页新随笔联系订阅 管理 随笔- 92 文章- 49 评论- 640 Lucene学习总结之一:全文检索的基本原理 一、总论 根据http://lucene.apache.org/java/docs/index.html定义: Lucene是一个高效的,基于Java的全文检索库。 所以在了解Lucene之前要费一番工夫了解一下全文检索。 那么什么叫做全文检索呢?这要从我们
2015-07-08 13:23:59
631
转载 boost资料
AnIntroduction+to+Boost.chm Beyond+the+C+++Standard+Library(中文版).pdf Beyond_STL An Introduction to Boost中文.chm Boost And STL学习资料 .chm boost graph library.pdf Boost+库+学习指南+.pdf boost-thread.pdf boost_1
2015-04-20 22:19:43
684
转载 向依赖关系宣战
一篇依赖倒置,控制反转,依赖注入好文 摘自(http://www.contextfree.net) 向依赖关系宣战 依赖倒置、控制反转和依赖注入辨析 在《道法自然——面向对象实践指南》一书中,我们采用了一个对
2015-04-13 14:31:29
492
转载 这些苦对您很有用
C++著名程序库的比较和学习经验 1、C++各大有名库的介绍——C++标准库 2、C++各大有名库的介绍——准标准库Boost 3、C++各大有名库的介绍——GUI 4、C++各大有名库的介绍——网络通信 5、C++各大有名库的介绍——XML 6、C++各大有名库的介绍——科学计算 7、C++各大有名库的介绍——游戏开发 8、C++各大有名库的介绍——线程 9、C++各大有名库的介
2015-03-04 10:32:33
555
原创 内存泄漏检测
Visual Leak Detector vld.codeplex.com/ www.codeproject.com/Articles/9815/Visual-Leak-Detector-Enhanced-Memory-Leak-Detectio #include "stdafx.h" #include "vld.h" int main() { int *p = new int
2015-01-19 11:46:51
460
原创 new与malloc的不同
new与malloc的不同: 1、malloc是函数,而new是运算符 2、malloc不在编译器的管辖范围内、无法执行构造函数与析构函数 3、new实际上使用了malloc函数、new实际上等价于malloc函数+构造函数的执行;delete类似 4、new返回的是类类型、malloc返回的是void* 5、其它………………
2014-08-13 14:26:33
662
原创 const与define的不同
const与define的最大不同是:const在内存中只有一份、汇编给出的是内存地址;而define有很多份,因为define在立即数中
2014-08-13 14:14:02
1512
原创 对文件地址的几种概念的理解
基地址:文件的实际装入内存地址、模块首址(大多数情况下为模块句柄、loadlibrary或getmodulehandle函数返回的整数) RVA:文件在内存中相对虚拟地址、相对于基地址的偏移量 VA:文件在内存中的虚拟地址、或叫文件内存中的实际地址(4g内存逻辑空间中的实际地址、非内存物理地址) 计算: VA = 基地址 + RVA; RAW: 文件外设相对地址 ............
2014-08-04 11:22:06
1225
转载 PE格式详细讲解
PE是英文Portable Executable(可移植的执行体)的缩写,从缩写可以看出它是跨平台的,即使在非intel的CPU上也能正常运行的。它是 Win32环境自身所带的执行体文件格式。其实不光是EXE文件是PE格式,其它的一些重要文件,例如动态链接库文件(DLL),驱动文件(SYS)等也是PE格式的,所以学好PE格式是非常重要的,以下我把这类文件统称为PE文件。学习PE文件结构不仅可以使我
2014-07-31 15:42:09
963
原创 使用c++替代使用c的封装!
见过很多人写c代码、用结构体将各种要素封装、如下转载一个使用epoll的例子: // // a simple echo server using epoll in linux // // 2009-11-05 // 2013-03-22:修改了几个问题,1是/n格式问题,2是去掉了原代码不小心加上的ET模式;
2014-07-21 11:50:30
1140
原创 libevent简介和使用
libevent接口的使用是简单容易的、关键还是一些其它技术需要深入了解、如epoll! 下面文章来自open经验库: libevent是一个基于事件触发的网络库,memcached底层也是使用libevent库。 总体来说,libevent有下面一些特点和优势: * 事件驱动,高性能; * 轻量级,专注于网络; * 跨平台,支持 Windows、Linux、Mac Os等;
2014-07-15 22:09:47
1242
1
原创 几个重要的源代码
几个重要的源代码、有时间可以深入的研究研究! 1、Memcached 一听名字就是内存方面的东东,计算机重要的研究对象无疑都是内存呀、磁盘等外设呀,所以,这个东东研究研究很有好处。 百度百科对她的解释:Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。M
2014-07-15 20:03:44
1335
1
转载 如何通过自学,成为数据挖掘“高手”?
求教各位对数据挖掘有一定了解的达人,如何从“零”开始学习数据挖掘?需要掌握哪些基本的技能?(比如是不是一定要会用R进行简单编程、掌握哪些基本的数学知识等) 喜欢数学,本科有最基本的数学基础(数学分析、线代、概率论与统计、数论…),本身对数据挖掘很有兴趣,如果掌握了,对现在的工作也会很有帮助,所以下决心来从头学起。 诚挚感谢! 4条讨论 | 修改记录 水终 分享到: 豆瓣 新浪微博
2014-07-15 10:21:20
1059
原创 web中文数据解析流程
1 获取web原始数据 2 确定数据编码 如:是不是url编码或base64编码 3 如有编码需解码 4 确定原始数据字符集以及本地显示字符集 5 字符集转换 6 显示
2014-07-15 10:15:27
754
原创 被攻击减血,攻击可增加等级
/* * 备忘录模式 */ #include //保存值 class mySavevalue { public: mySavevalue(string user_name = "", int life_value = 100, int magic_point = 100, int rank_values =
2014-06-30 15:42:28
882
原创 文件处理
#include "my_file.h" //将文件内容拷贝到指定文件 int mycopy(const char *filename) { ifstream infile(filename, ios::binary); ofstream outfile("TRACE.txt", ios::binary); if (!infile.is_open() || !outfile
2014-06-27 10:32:16
829
转载 类型转换
} 补充: dynamic_cast 的注意事项: dynamic_cast 转换符只能用于指针或者引用。 dynamic_cast 转换符只能用于含有虚函数的类。 dynamic_cast 转换操作符在执 行类型转换时首先将检查能否成功转换, 如果能成功转换则转换之, 如果转换失 败,如果是指针则反回一个 0 值,如果是转换的是引用,则抛出一个 bad_c
2014-06-24 11:25:00
584
原创 setjmp/longjmp
1、setjmp/longjmp属于传统的错误处理 2、setjmp/longjmp是对goto语句的补充,goto智能实现局部跳转,setjmp/longjmp可以实现全局跳转 3、setjmp/longjmp与goto都有缺陷 传统错误处理的3种方式是: 1、设置全局错误状态,标准c中使用errno与perror函数来支持 2、使用标准c库中的信号 3、使用setj
2014-06-24 08:48:36
818
转载 UML中的六大关系
UML中的六大关系 UML定义的关系主要有六种:依赖、类属、关联、实现、聚合和组合。这些类间关系的理解和使用是掌握和应用UML的关键,而也就是这几种关系,往往会让初学者迷惑。这里给出这六种主要UML关系的说明和类图描述,一看之下,清晰明了;以下就分别介绍这几种关系: 继承 指的是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,
2014-06-20 17:07:18
622
PC-PLC组成的电梯群控系统.rar
2009-07-05
SQL2000语言大全
2009-07-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅