- 博客(315)
- 资源 (3)
- 收藏
- 关注
转载 QVariant类的使用注意事项
QVariant类作为一个最为普遍的Qt数据类型的联合,联合体当中的变量共用一个存储区,一个QVariant对象在一个时间内只保留一种类型的值。
2015-11-27 14:33:04
2742
转载 Qt中SQLite3的增、删、改、查操作
QT对数据库具有完善的支持,不需要加任何其他插件就可以直接使用,但是如果你要是加了sqlite3插件,调用数据库就跟直接调用一个驱动一样,直接调用接口函数:open、close、……,换言之QT自带的数据库语言就用不上了。
2015-11-25 10:13:15
25707
转载 Qt之右键菜单实现
最近在看C++ GUI Qt4部分其中有个例子对于扩展一个应用程序提供一个上下文菜单,其中该程序只是定义一个变量来实现其中用到了一个函数(下文会给予解答)。但是更高级的是重新定义事件处理函数void contextMenuEvent(QContextMenuEvent *event)。下面讲解其contextMenuEvent(QContextMenuEvent *event)。
2015-11-20 10:50:25
8075
转载 为何Windows下的动态库总伴随一个静态库?
为何Windows下的动态库总伴随一个静态库?今天同学来问了一个问题:Visual Studio中生成的动态库总是伴随着一个静态库文件,我把这两个文件同样进行重命名之后还能不能使用?我对VS下的动态库的生成并不是很熟悉,表示无法回答这个问题。但这个问题本身却也让我产生了疑问:动态库真的需要总是伴随着一个静态库?根据我在Linux下的经验,这两种形式的代码库是没有什么依赖
2015-08-14 16:25:49
2700
1
转载 C++用new和不用new创建类对象的区别
起初刚学C++时,很不习惯用new,后来看老外的程序,发现几乎都是使用new,想一想区别也不是太大,但是在大一点的项目设计中,有时候不使用new的确会带来很多问题。当然这都是跟new的用法有关的。new创建类对象,使用完后需使用delete删除,跟申请内存类似。所以,new有时候又不太适合,比如在频繁调用场合,使用局部new类对象就不是个好选择,使用全局类对象或一个经过初始化的全局类指针似乎更加高
2015-06-24 15:57:04
7848
转载 C++变量的声明和定义
我们已经知道,一个函数一般由两部分组成:声明部分和执行语句。声明部分的作用是对有关的标识符(如变量、函数、结构体、共用体等)的属性进行说明。对于函数,声明和定义的区别是明显的,前边已说明,函数的声明是函数的原型,而函数的定义是函数功能的确立。对函数的声明是可以放在声明部分中的,而函数的定义显然不在函数的声明部分范围内,它是一个文件中的独立模块。对变量而言,声明与定义的关系稍微复杂一
2015-06-24 11:01:52
1310
转载 消息队列和管道的区别以及和共享内存相比效率低的原因
管道和消息队列的区别管道(PIPE)管道通信方式的中间介质是文件,通常称这种文件为管道文件。两个进程利用管道文件进行通信时,一个进程为写进程,另一个进程为读进程。写进程通过写端(发送端)往管道文件中写入信息;读进程通过读端(接收端)从管道文件中读取信息。两个进程协调不断地进行写、读,便会构成双方通过管道传递信息的流水线。管道分为匿名管
2015-06-18 17:05:50
12050
转载 架构设计中影响性能的因素及解决方案
性能(performance)设计非常重要,对于服务器端实时交易系统来说系统性能的重要性不言而喻,对客户端软件来说性能好的软件也会获得良好的用户体验,从而给用户留下高质量软件的良好印象。因此在进行架构设计中性能设计非常重要。 但架构设计实际是一个平衡设计,在可用性、可扩展性、可维护性、可靠性、高性能等之间做个妥协选择。这些非功能性的需求再加上复杂的功能性需求,同时还要考虑到项目管理上
2015-06-15 09:54:16
4409
转载 一致性哈希算法原理及其在分布式系统中的应用
本文将会从实际应用场景出发,介绍一致性哈希算法(Consistent Hashing)及其在分布式系统中的应用。首先本文会描述一个在日常开发中经常会遇到的问题场景,借此介绍一致性哈希算法以及这个算法如何解决此问题;接下来会对这个算法进行相对详细的描述,并讨论一些如虚拟节点等与此算法应用相关的话题。分布式缓存问题假设我们有一个网站,最近发现随着流量增加,服务器压力越来越大,之前直接读写数
2015-06-09 08:47:17
6392
2
转载 一致性hash算法详解
一致性哈希算法在1997年由麻省理工学院提出的一种分布式哈希(DHT)实现算法,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似。一致性哈希修正了CARP使用的简 单哈希算法带来的问题,使得分布式哈希(DHT)可以在P2P环境中真正得到应用。 一致性hash算法提出了在动态变化的Cache环境中,判定哈希算法好坏的四个定义:1
2015-06-08 22:32:43
1063
转载 在linux中使用内存映射(mmap)操作文件的方法
在使用内存映射操作文件之前,我们先按照常规的方式来读写文件,这种方式操作如下:1,打开或创建文件,得到文件描述符,2,将内存中的数据以一定的格式和顺序写入文件,或者将文件中的数据以一定的格式和顺序读入到内存;3,关闭文件描述符;下边是按照常规方式操作固定格式的文件的方法,包含读写两个示例;[cpp] view plaincopy
2015-06-04 15:22:26
2492
转载 详解coredump
详解coredump一,什么是coredump 我们经常听到大家说到程序core掉了,需要定位解决,这里说的大部分是指对应程序由于各种异常或者bug导致在运行过程中异常退出或者中止,并且在满足一定条件下(这里为什么说需要满足一定的条件呢?下面会分析)会产生一个叫做core的文件。 通常情况下,core文件会包含了程序运行时的内存,寄存器状
2015-05-12 15:45:41
1510
转载 使用Dump文件让程序在崩溃时体面的退出
在我的那篇《让程序在崩溃时体面的退出之CallStack》中提供了一个在程序崩溃时得到CallStack的方法。可是要想得到CallStack,必须有pdb文件的支持。但是一般情况下,发布出去的程序都是Release版本的,都不会附带pdb文件。那么我们怎么能在程序崩溃的时候找到出错的具体位置呢?这个时候就该Dump文件出场了!Dump文件是进程的内存镜像,可以把程序运行时的状态完整的保存下来。
2015-05-12 15:43:07
982
转载 SAN与NAS
SAN : STORAGE AREA NETWORK 存储区域网络NAS : NETWORK ATTACHED STORAGE 网络附加存储 NAS不一定是盘阵,一台普通的主机就可以做出NAS,只要它自己有磁盘和文件系统,而且对外提供访问其文件系统的接口(如NFS,CIFS等),它就是一台NAS。常用的windows文件共享服务器就是利用CIFS作为调用接口协议的NAS设备。一
2015-05-07 16:46:16
1168
转载 Qt中的信号与槽机制解析
注:要想使用Qt的核心机制信号与槽,就必须在类的私有数据区声明Q_OBJECT宏,然后会有moc编译器负责读取这个宏进行代码转化,从而使Qt这个特有的机制得到使用。所谓信号槽,简单来说,就像是插销一样:一个插头和一个插座。当某种事件发生之后,比如,点击一下鼠标,或者按下某个按键,此时,这个组件就回发出一个信号。如果有一个槽,正好对应上这个信号,那么,这个槽函数就回被调用。槽函数和普
2015-05-04 17:44:02
12374
原创 VC环境下(非QT环境)使用Qt的配置方法
最近在已经发布的dll工程中发现了一个bug,最后决定使用Qt的signal-slot机制去改善。但是原始dll工程并非Qt工程,只是一个MFC工程,直接使用Qt函数是会报错的。经过我的摸索,最终成功移植,使其兼容Qt的函数库。步骤如下: 1.在目标工程下,依次选择“项目--》**属性--》配置属性--》C/C++--》常规--》附加包含目录”中添加Qt的重要目录,如下图所示
2015-05-04 17:14:00
3268
转载 error LNK2001: 无法解析的外部符号 "public: virtual struct QMetaObject const * __thiscall Widget::metaObject
编写一个简单的给予QT的DEMO程序步骤大致如下:下面开始编程:A 编写 main.cppB 编写 hello.hC 编写 hello.cppD 制作.ui文件,并生成ui_hello.h 打开designer,拖入一个pushButton,一个label。保存为hello.ui。然后生成ui_hello.h,并添加到项目的源文件中。 编译运
2015-05-04 16:00:45
7162
转载 vs2010中自动生成Qt的moc文件的方法
Qt 程序在交由标准编译器编译之前,先要使用 moc 分析 C++ 源文件。如果它发现在一个头文件中包含了宏 Q_OBJECT,则会生成另外一个 C++ 源文件。这个源文件中包含了 Q_OBJECT 宏的实现代码。这个新的文件名字将会是原文件名前面加上 moc_ 构成。这个新的文件同样将进入编译系统,最终被链接到二进制代码中去。因此我们可以知道,这个新的文件不是“替换”掉旧的文件,而是与原文件
2015-05-04 15:58:59
4245
转载 typedef struct 用法详解和用法小结 及 在C和C++中的区别
1 : 在C和C++中struct和typedef struct的区别在C和C++有三种定义结构的方法。typedef struct {int data;int text;} S1;//这种方法可以在c或者c++中定义一个S1结构struct S2 {int data;int text;};// 这种定义方
2015-04-29 15:29:02
20759
2
转载 VS中使用“附加到进程”进行调试的方法
有些时候碰到自己开发的程序嵌入到别人的框架中,而在接口的地方出了问题,而又不方便将自己的模快加入到别人的工程中【有很多相关的文件,还有mster页面等】,这个时候VS的附加到进程调试变得不可或缺了,过多介绍的东西就不多说了,直奔主题1、拷贝project1的dll及相关的xap及页面文件到对应的project2工程中,不必加入到工程中。2、启动Project2工程【Ctrl+F5】
2015-04-21 16:35:16
9799
转载 不使用路由器来实现不同网段(子网)计算机之间通信的方法
文章针对有IP网络基础知识,对osi和以太网有基本了解的人群!首先介绍一下,网关的作用,因为实现中要借助网关。 路由器是三层的设备,主要协议为IP。三层设备主要负责寻址,通过查看自已通过各种动态路由协议或静态指定的路由表,来确定数据包的传送方向,路由器就像是站在十字路口的一个交警,如果有司机(数据包)不知道目的地就问这个交警,这个交警从大脑的数据库中检索到,这个司机要去的目的地,
2015-04-17 16:03:55
21791
2
转载 通过设置静态路由来实现不同网段可以互相访问的方法
随着宽带接入的普及,很多家庭和小企业都组建了局域网来共享宽带接入。而且随着局域网规模的扩大,很多地方都涉及到2台或以上路由器的应用。当一个局域网内存在2台以上的路由器时,由于其下主机互访的需求,往往需要设置路由。由于网络规模较小且不经常变动,所以静态路由是最合适的选择。可是如果是多网段,又想实现不同网段电脑互访,设置静态路由就要掌握方法了。 本文作为一篇初级入门类文章,会以几个简单实
2015-04-15 10:13:32
38699
3
转载 相同网络与不同网络间的通讯解释!
转帖:相同网络与不同网络间的通讯解释!关于《检查你是否高手》帖子中讲述到的网络间通讯问题我再详细解释一下,希望帮到各位!主机间的通讯分为,相同网段间的通讯和不同网段间的通讯。如何识别?首先有A和B两台主机。A主机:192.168.1.1 255.0.0.0 B主机:192.168.2.1 255.255.0.0 。相同网段间通讯指:1、本机IP地址与本机子网掩码进行与运算,得出
2015-04-15 10:10:49
2521
转载 socket通信中select函数的使用和详解
最近在写一个网络通信函数,参考别人的代码时对select()函数的使用存有疑惑,不太确定具体的使用方法,何时使用,以及其作用。在网上搜到一篇文章,觉得介绍的不错,收藏学习。先自我总结一下。 select函数的作用: select()在SOCKET编程中还是比较重要的,可是对于初学SOCKET的人来说都不太爱用select()写程序,他们只是习惯写诸如 conncet
2015-04-02 16:09:09
9662
转载 网络传输中MAC地址表、ARP表和路由表详解
一:MAC地址表详解说到MAC地址表,就不得不说一下交换机的工作原理了,因为交换机是根据MAC地址表转发数据帧的。在交换机中有一张记录着局域网主机MAC地址与交换机接口的对应关系的表,交换机就是根据这张表负责将数据帧传输到指定的主机上的。交换机的工作原理交换机在接收到数据帧以后,首先、会记录数据帧中的源MAC地址和对应的接口到MAC表中,接着、会检查自己的MAC表中是否有数
2015-03-13 10:23:42
17208
3
转载 UML建模中的时序图详解
UML建模之时序图(Sequence Diagram) 一、时序图简介(Brief introduction) 二、时序图元素(Sequence Diagram Elements)角色(Actor)对象(Object)生命线(Lifeline)控制焦点(Focus of Control)消息(Message)自关联消息(Self-Messa
2015-03-09 11:05:44
13703
转载 进程间通信的几种方式:管道、信号、消息队列、共享内存
一、管道单向,一段输入,另一端输出,先进先出FIFO。管道也是文件。管道大小4096字节。特点:管道满时,写阻塞;空时,读阻塞。分类:普通管道(仅父子进程间通信)位于内存;命名管道位于文件系统,没有亲缘关系管道只要知道管道名也可以通讯。管道是由内核管理的一个缓冲区(buffer),相当于我们放入内存中的一个纸条。管道的一端连接一个进程的输出。这个进程会向管道中放
2015-03-06 14:50:58
3933
转载 MySQL中数据类型介绍
一、MySQL的数据类型主要包括以下五大类:整数类型:BIT、BOOL、TINY INT、SMALL INT、MEDIUM INT、 INT、 BIG INT浮点数类型:FLOAT、DOUBLE、DECIMAL字符串类型:CHAR、VARCHAR、TINY TEXT、TEXT、MEDIUM TEXT、LONGTEXT、TINY BLOB、BLOB、MEDIUM BL
2015-02-10 10:55:34
21972
1
转载 深入理解MySQL中的复制功能--数据库同步
理解MySQL——复制(Replication)1、复制概述1.1、复制解决的问题数据复制技术有以下一些特点:(1) 数据分布(2) 负载平衡(load balancing)(3) 备份(4) 高可用性(high availability)和容错1.2、复制如何工作从高层来看,复制分成三步:(1) maste
2015-02-10 10:46:47
6419
转载 数据库中的一些基本操作
添加:向数据库中添加值语法:INSERT [INTO] table_name [(COLUMN1,COLUMN2,.....)] VALUES (VALUE1,VALUE2,.....)注意:1、VALUES需要与COLUMN对应2、添加数据时,如果字段类型为varchar或datetime,否则必须使用单引号('')引起来。3、虽然没有显示地添加IDENTIRY约束字段,
2015-02-09 16:31:34
2155
转载 MySQL数据库表结构设计优化技巧总结
很多人都将 数据库设计范式 作为数据库表结构设计“圣经”,认为只要按照这个范式需求设计,就能让设计出来的表结构足够优化,既能保证性能优异同时还能满足扩展性要求。殊不知,在N年前被奉为“圣经”的数据库设计3范式早就已经不完全适用了。这里我整理了一些比较常见的数据库表结构设计方面的优化技巧,希望对大家有用。 由于MySQL数据库是基于行(Row)存储的数据库,而数据库操作 IO 的时候是以
2015-02-09 15:51:05
5678
转载 数据库中的完整性约束及实例
1 定义 数据完整性用于保证数据库中数据的正确性、一致性和可靠性。 2 类型 • 实体完整性(Entity Integrity) • 域完整性(Domain Integrity) • 参照完整性(Referential Integrity) • 用户定义完整性(User-defined Integrity) 图示 实体完整性(Entity In
2015-02-09 15:36:41
28106
1
转载 C++之单目运算符重载
单目运算符只有一个操作数,如!a,-b,&c,*p,还有最常用的++i和--i等。重载单目运算符的方法与重载双目运算符的方法是类似的。但由于单目运算符只有一个操作数,因此运算符重载函数只有一个参数,如果运算符重载函数作为成员函数,则还可省略此参数。下面以自增运算符”++“为例,介绍单目运算符的重载。[例10.5] 有一个Time类,包含数据成员minute(分)和sec(秒),模拟
2015-02-06 09:20:23
1965
转载 函数返回值为引用、非引用及引用左值的情况
返回非引用 string make_plural(size_t i,const string &word,const string &ending) { return (i==1)?word:word+ending; } 以上函数,当i等于1时,函数返回word形参的副本;当i不等于1时函数返回一个临时的s
2015-02-03 20:02:48
2485
转载 C++中const成员函数和非const成员函数的重载
函数重载函数重载的定义是:在相同的作用域中,如果函数具有相同名字而仅仅是形参表不同,此时成为函数重载。注意函数重载不能基于不同的返回值类型进行重载。注意函数重载中的“形参表”不同,是指本质不同,不要被一些表象迷惑。main函数不能被重载。下面三组定义本质是相同的,不是重载:1)int sum (int &a); 和 int sum (int &);2) int sum (in
2015-02-02 14:30:18
5318
转载 Linux环境下安装Nginx+Pcre+zlib+OpenSSL
Nginx是一款非常优秀的Web服务器,它是由俄罗斯人Igor Sysoev(伊戈尔-塞索耶夫)写的,虽然它的应用还没有老牌Web服务器Apache广泛,但相比Apache,它有着自己的一些优势,比如很好的高并发访问支持内存却占用少,配置简单,稳定性高,支持热部署等等。Nginx 已经在俄罗斯的最大的门户网站Rambler Media上运行了好几年的时间,在国内也有很多一些知名网站也采用N
2014-12-27 16:27:26
14377
转载 一起来学LANMP:linux搭建LANMP(编译版)
/** Author: GP* Emeil: vsgeping@gmail.com* Website: http://www.gplinux.com*//*注:nginx和apache的配置只是简单配置,如果要做到nginx处理前端apache处理后台脚本,还需更深入配置*/刚安装好linux,现在开始编译安装LANMP在这里写下编译安装
2014-12-27 15:39:07
1581
转载 图论中的最小生成树算法
所谓最小生成树,就是在一个具有N个顶点的带权连通图G中,如果存在某个子图G',其包含了图G中的所有顶点和一部分边,且不形成回路,并且子图G'的各边权值之和最小,则称G'为图G的最小生成树。 由定义我们可得知最小生成树的三个性质: • 最小生成树不能有回路。 • 最小生成树可能是一个,也可能是多个。 • 最小生成树边的个数等于顶点的个数减一。
2014-12-19 09:12:03
1742
转载 清空链表跟销毁链表的区别
链表本身是一个数据结构。销毁:是先销毁了链表的头,然后接着一个一个的把后面的销毁了,这样这个链表就不能再使用了,即把包括头的所有节点全部释放。清空:是先保留了链表的头,然后把头后面的所有的都销毁,最后把头里指向下一个的指针设为空,这样就相当与清空了,但这个链表还在,还可以继续使用;即保留了头,后面的全部释放。清空是链表的头还在,可以继续插入节点;销毁就是链表没了,整个链表(包括头)的空
2014-12-04 11:18:03
25118
5
转载 数据库中schema的含义
看来有的人还是对schema的真正含义不太理解,现在我再次整理了一下,希望对大家有所帮助。我们先来看一下他们的定义:A schema is a collection of database objects (used by a user.). Schema objects are the logical structures that directly refer to the d
2014-12-03 16:59:25
3624
基于AT89C2051单片机的电风扇
2010-05-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人