
软件开发
文章平均质量分 81
wolfseek
这个作者很懒,什么都没留下…
展开
-
通用插件框架体系-媒介系统
在实际的项目中,很多场景需要我们在不知道对象具体类型的情况下构建拷贝对象、复制数据、归档数据等。如在一个基础类库中管理了诸多的派生类,这些类是以基类类型指针或无类型指针管理的。另一种典型的场景是基础类库中要跨线程复制和拷贝数据时。这些场景有一个典型的特点是基础类库不知道派生对象的具体类型。媒介系统就是要建立一套机制,在这种场景下构建对象和归档对象。这一种需求类似于c++的运行时类型鉴定(RTTI),但又超越了运行时类型鉴定提供的能力。原创 2022-12-19 07:23:01 · 345 阅读 · 1 评论 -
通用插件框架体系-日志系统
日志,作为一个基功能有着广泛的应用,本文介绍了一种日志系统的实现,同时支持windows和linux两种平台。首先实现了一个基本的类CTrack,再以这个类为基础提供了一个对外的接口Track,之后再定义了各种宏,方便模块的使用。原创 2022-12-17 09:23:07 · 568 阅读 · 1 评论 -
QTreeView实现复选框
好久没有关注这些细节了,竟然记得butai原创 2014-10-09 15:08:57 · 1116 阅读 · 0 评论 -
树的非递归深度优先遍历
void GZLTBydDataExt::readFromXml(QDomElement & secondElem){ //QDomElement elem = secondElem.firstChildElement(); //while(!elem.isNull()) //{ // this->readMathData(elem);原创 2015-01-26 20:46:22 · 962 阅读 · 0 评论 -
定时关闭消息对话框
class QTimeDialog : public QDialog{public: QTimeDialog (const QString & str,QWidget *parent = NULL); ~QTimeDialog (); static void show(const QString & msg, QWidget *parent = NULL)原创 2014-12-04 20:34:05 · 487 阅读 · 0 评论 -
Qt文件日志
#include class CFileMessageHandler{public: CFileMessageHandler(); ~CFileMessageHandler();protected: static void myMessageOutput(QtMsgType type, const QMessageLog原创 2014-12-04 20:22:24 · 789 阅读 · 0 评论 -
简单观察者模式
Qt,使用模板方式实现的观察者模式。原创 2014-12-04 19:50:36 · 519 阅读 · 0 评论 -
工具栏按钮下拉菜单
Qt, execl工具栏按钮下拉菜单的实现,创建一个弹出式菜单,将其弹出的位置设置在按钮的下面。原创 2014-12-04 20:11:09 · 2164 阅读 · 0 评论 -
菜单式弹出窗体
弹出式窗体他的要求如下: 1.点击按钮弹出这个窗体在按钮旁边,并可编辑内容。 2.鼠标点击其他地方(非弹出窗体),这个窗体关闭注意:1.这里基类必须是QDialog. 2.创建他时必须指定parent. 3.这个窗体必须new出来。//头文件class GTZLSetWidget : public QDialog{原创 2014-12-04 20:17:07 · 613 阅读 · 0 评论 -
c++数值处理
1.浮点数的比较2.防止被除数为0情况1.浮点数的比较不可以直接比较,需要给定一个差值判断两个浮点数相减的结果是大于还是小于这个差值 bool operator>(double d1,double d2) { double diff = 0.00000001; if(d1 - d2 > diff)return true;原创 2014-12-04 20:29:24 · 717 阅读 · 0 评论 -
c++中带空格路劲的处理
处理的原则是使用一个双引号将这个路劲包含,但c++中双引号是一个关键字符,所以必须使用转义字符完成这一功能。见代码:QString str;if(data.opt.contains(" ")){ str = QString("\"%1\"").arg(data.opt);}else{ str = data.opt;}Q原创 2014-12-04 21:06:45 · 1897 阅读 · 0 评论 -
PCM转WAV
//.H**********************************************************class QPcmToWav : public QObject{ Q_OBJECTpublic: QPcmToWav(QObject *parent = 0); void setFormat(const QAudioFormat原创 2015-03-07 11:10:38 · 566 阅读 · 0 评论 -
简单通用数据访问层
使用Qt实现的简单的通用数据访问层,方便构建通用数据访问。原创 2015-03-07 10:58:29 · 864 阅读 · 0 评论 -
简单通用数据访问映射层
与简单数据访问层配合的命令道SQL语句的映射层,目标构建通用代码,使用不同的配置文件完成不同数据访问功能。原创 2015-03-07 11:02:53 · 617 阅读 · 0 评论 -
Qt动态重生类厂
class QConstructHelper{public: virtual void * create() = 0;};templatetypename T>class QMetaTypeConstructHelper : public QConstructHelper{public: QMetaTypeConstruct原创 2015-03-07 11:07:57 · 581 阅读 · 0 评论 -
两个在多线程环境下使用的小工具类
templateclass QThreadSelfQueue{public: QThreadSelfQueue(){} void push(T * p){ m_semaphore.release(); m_list.push_back(p); } T* pop(int timeout = -1)原创 2014-09-30 07:21:57 · 500 阅读 · 0 评论 -
Qt QTcpServer的使用
Qt集成许多小工具类,使开发者使用起来十分原创 2014-09-30 07:05:22 · 905 阅读 · 0 评论 -
敏捷开发—用户故事
1.1. 敏捷开发的目的质量风险前移适应需求变化及时总结、思考和促进团队成长。 2. User story和需求列表的不同需求栈通常如下:序号功能详细描述1功能1…………………………………………2功能2…………………………………原创 2014-08-14 20:08:00 · 1397 阅读 · 0 评论 -
linux serial programe
Serial Programming GuideforPOSIX Operating Systems5th Edition, 6th RevisionCopyright 1994-2005 by Michael R. Sweetfrom:http://www.easysw.com/~mike/serial/serial.htmlPermission is gra转载 2011-11-19 12:04:48 · 931 阅读 · 0 评论 -
http协议简介
【转载来源】:不详 HTTP(HyperTextTransferProtocol)是超文本传输协议的缩写,它用于传送WWW方式的数据,浏览器与Web服务器之间所遵循的协议就是HTTP,关于HTTP协议的详细内容请参考RFC2616。HTTP协议采用了请求/响应模型。客户端向服务器发送一个请求,请求头包含请求的方法、URI、协议版本、以及包含请求修饰符、客户信息和内容的类似于MIME的消息结转载 2011-12-10 09:58:13 · 318 阅读 · 0 评论 -
HTTP1.1协议中文版-RFC2616
【转载来源】中国协议分析网|www.cnpaf.net 【原文链接】http://www.cnpaf.net/Class/HTTP/200811/23277.html 说明 本文档规定了互联网社区的标准组协议,并需要讨论和建议以便更加完善。请参考 “互联网官方协议标准”(STD 1)来了解本协议的标准化状态。本协议不限流传发布。版权声明 Copyright (C) T转载 2011-12-10 10:08:45 · 1280 阅读 · 0 评论 -
原始套接字编程示例
This is a continuation from Part IV series, Advanced TCP/IP Programming Tutorial. Working program examples if any compiled using gcc, tested using the public IPs, run on Fedora Core 3, with several t转载 2012-09-12 15:41:45 · 627 阅读 · 0 评论 -
软件开发的成与败
1.决定一个开发的好坏的因素是什么呢?2.决定一个开发成败的因素又是什么呢?3.一个好的开发又具备什么样的特征呢?4.推动软件开发进步的因素又是什么呢? 要清楚以上的答案,我们首先需清楚一个好的开发应具有的特征: a.解决了工作,生活中的某些问题,这些问题可能大可能小,可能是关系民生的问题也可能是只满足于个人享乐的问题。 b.易于使用,能使使用的用户有好感,乐于其中。原创 2013-06-22 10:15:34 · 644 阅读 · 0 评论 -
再思MVC结构应用在桌面程序中的得失
在桌面应用程序开发中,面对于不同规模的程序,应用起同一种结构的MVC,显得的有些见酌。根据MVC的概念将程序分成3个部分,界面,业务,数据模型。程序实现的核心主要集中在业务和数据的组织上,那么更具不同部分的复杂度,将有不同的结构形式,是程序在开发的便利性、程序的扩展能力、生命周期上得到最优的提升。 1. 业务复杂程度对程序结构的影响: 所谓业务的复杂是指业务算法的复原创 2013-06-22 10:24:34 · 2219 阅读 · 0 评论 -
QXmlStreamReader能读取中文吗
QXmlStreamReader能读取中文吗? 答案是肯定的,但为什么有时会出错呢? 在XML文件的开头有一行 的鸟东西,这里的的encodeing就是解析XML时使用的编码方式,如果它设置的不正确将无法正常解析。在有中文的环境下要使用方式,还有诸如GB-2312也能行。 对于文件可以设置encodeing的值,对于从从网络上收到的xmlrpc报文,通常没有这类的东西,导致解析的原创 2013-06-22 10:31:10 · 1891 阅读 · 0 评论 -
思考QT的MV对开发简化
思考QT的MV对开发简化 人类软件开发的动向是什么呢?在这有两个值得关注的问题: 1.人类开发的软件一大部分是将人类从繁重和复杂中解脱出来,另一类是提高人类的生活体验和感受使生活变得更美好。 2.开发技术的变迁似乎与第一个吻合,为使开发人员从繁重中解脱,出现的各种开发语言、模块和各种开发库。 那么QT,在设计初期,是否要求开发人员解决复杂的逻辑和数据组织呢?原创 2013-06-22 10:28:28 · 1150 阅读 · 1 评论 -
SQL连接查询语句
1.left join left join是以A表的记录为基础的,A可以看成左表,B可以看成右表,left join是以左表为准的. 换句话说,左表(A)的记录将会全部表示出来,而右表(B)只会显示符合搜索条件的记录(例子中为: A.aID = B.bID). B表记录不足的地方均为NULL. 2.right join right join(右联接)原创 2013-06-28 16:03:29 · 494 阅读 · 0 评论 -
分页多表联查和效率问题
先看一个较常见的多表联查时的分页:SELECT TOP (30) T_EVENTS.EVENT_TIME,T_EVENTS.CATALOG_ID,T_USERS.USER_NAME,T_HOSTS.HOST_NAME,T_HOSTS.HOST_ADDRESS,EVENT_NAME,EVENT_CONTENTFROM T_CATALOGS,T_EVENTS,T_USERS,T_HOSTS原创 2013-07-31 10:34:01 · 1212 阅读 · 0 评论 -
一次糟糕面试的思考
1. 沟通原则之一,在沟通过程中发现对方问的问题有问题时,应在融洽的气氛中当面指出,事后想找机会指出是无力的,并且可能没有这样的机会。但切记不要将这一切变成一场争论。 2. 沟通原则之二,当对方与你针锋相对时应怎么办呢?最明智的做法首先应指明这种状态,希望双方冷静下来之后寻求新的沟通方式。若这种方法无法凑效,应立即停止沟通。 3. 沟通原创 2014-03-31 12:55:06 · 712 阅读 · 0 评论 -
基于opencv的一维条码识别
一. 条码图像处理过程 图像的大致处理流程如下: 1.将彩色图转变成灰度图 2.对灰度图均衡化 3.将灰度图转换成二值图 4.对二值图进行腐蚀 5.识别边界检测轮廓 6.对每一个轮廓包围的区域进行特征识别,判断是否是条码区域。原创 2014-03-20 14:52:42 · 10165 阅读 · 1 评论 -
高性能服务器设计总结(1)
高性能服务器设计在高性能服务器设计中首先应保持一下几个原则1. 对线程不是越多越好,原则上应和CPU核数相等,这是为什么呢?线程数超过了CPU核数,执行时的环境切换将耗去不少的CPU资源。2. 能不用锁最好,即是用,锁锁定的线程越少越好。推存仅在两个线程间使用锁,锁锁定的仅是数据,千万不要去锁定函数,锁定函数锁的作用域无法良好控制。锁锁定的粒度越小越好,原创 2014-04-07 08:19:54 · 722 阅读 · 0 评论 -
高并发服务器设计总结2
高性能服务器设计总结(2) 服务器和客户的通讯,存在两种基本的情况,1. 客户到服务器。2. 服务器到客户。 基于消息的通讯系统,特别是在HTTP之上实现的诸如soap,xmlrpc,xmlpp等,这些都是短连接,易于构建从客户到服务器的通讯,但服务器要主动向客户发数据就没那么容易,原因是客户可能在子网或是子网的子网中。基于短连接的通讯也可变原创 2014-04-27 11:09:36 · 725 阅读 · 0 评论 -
分层软件设计
同步发布在: 535789574的qq空间,wolfseek.blog.163.com,wolfseek.blog.csdn.com 软件为什么要分层呢?一方面软件太复杂,将器分解成若干层,使设计变得容易、易于实现。另一方面为适应更强的扩展、适配和互换,也在一定的程原创 2011-10-08 06:42:29 · 347 阅读 · 0 评论