自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 资源 (1)
  • 收藏
  • 关注

原创 从内存和对象的角度看C++类的静态…

提纲:1,C++的内存分区:stack heap和静态存储区;2,静态对象和实例对象;3,使用规则;4,应用场景;一、C++的内存分区和对象模型参考《C++PrimerPlus》第9章“内存模型和名称空间”,C++中用“持续性、作用域和链接性”三个属性来表征其存储特性,包括变量和函数。C++的内存模型大致可以分为三块:堆(heap)、栈(stack)和静态存储区(可能有第四块存储区

2015-11-25 09:43:41 436

原创 Qt之动态换图

Abstract:1,“动态创建”2,封装qwt的Plot类3,拖拽4,Plot类型转换一、功能描述假设有一个信号分析的软件工程,在它的主窗口mainwindow上,左侧是一个测试项列表(QListWidget),右侧是四个图形窗口(PlotorQTableWidget)用于观察测试项的图形结果。现在要实现的功能是:通过拖拽右侧测试项列表中任一项到右侧的任一窗口,即可在该窗口观

2015-11-25 09:43:38 1396

原创 C++设计模式之动态创建

Abstract:1,基本元素:工厂模式、函数指针和函数指针映射、链表、宏、静态全局变量控件、(虚函数)多态2,链表地址追踪实验;3,MFC动态创建原理演示;4,自定义动态创建示例;一、简述动态创建(DynamicCreation)是MFC六大核心机制之一。它的本质就是在运行时根据“类的某些信息”(如类名——字符串)创建对应的类对象,且客户代码(类对象的创建之处)无需包含待创建

2015-11-25 09:43:36 1132

原创 Qt之信号与槽应用小结

一、简介Qt的信号和槽机制是Qt的一大特点,实际上这是和MFC中的消息映射机制相似的东西,要完成的事情也差不多,就是发送一个消息然后让其它窗口响应,当然,这里的消息是广义说法,简单点说就是如何在一个类的一个函数中触发另一个类的另一个函数调用,而且还要把相关的参数传递过去.好像这和回调函数也有点关系,但是消息机制可比回调函数有多了,也复杂多了。Qt的信号与槽机制依赖QObject中隐含的子

2015-11-25 09:43:33 1214

原创 Qt布局管理之QSplitter和QuadSplit…

一、QSplitter和QuadSplitter简介Qt的布局管理器除了QLayout及其子类外,还可以使用QSplitter。与QLayout不同的是:1)QSplitter是一个带切分条(splitterhandle)的布局管理器,可以通过setHandleWidth()函数来设置切分条的宽带;2)QSplitter在创建的时候需要指定“orientation”或者在后续通过setOri

2015-11-25 09:43:31 2750

原创 算法分析之基本公理

(Algorithm Analysis -- the baseaxiom)算法分析包括许多方面,最重要的是“determinethe running time of a program as a function of itsinputs”,即“时间复杂度”,它与输入有关。此外,算法分析的时候,还需要忽略硬件和操作系统的影响,为此,我们引入了“model”(模型)。按我的理解,所谓模式就是

2015-11-25 09:43:28 564

原创 《数据结构与算法》学习之入门篇

To develop a solid understanding ofa data structure requires three things: First, you must learn howthe information is arranged in the memory of the computer. Second,you must become familiar with t

2015-11-25 09:43:25 511

原创 Qt之操作文件夹和文件

Task:之前在学习《C++PrimerPlus》的时候,照着程序清单和练习题,用VS新建了许多个工程。由于VS在编译和运行工程的时候,会产生一些临时文件夹和临时文件,如“.sdf”“Debug”等,非常占空间。现需要将这些临时文件夹和临时删除,以便打包压缩所有的有效工程代码。由于有上百个工程,逐个手工删除效率很低,而且每次用VS打开工程又会重新生成这些临时文件,非常烦恼。故想编一个小工具

2015-11-25 09:43:23 1917

原创 Qt之导出PDF、HTML和Word(三)

它生成的文件,双击打开,会跳出一个选择框:在word中,它支持编辑。如果想让它默认直接用word打开,可以使用word的另存为功能,另存为一个正在的word文档。但是,这个word文档的图片,仍然是以链接方式保存在word中,如果删除了原图片,将无法在word中显示。解决的办法是:1)手工将图片链接改为直接插入(选中图片,右键“更改图片”);2)使用VBA,自动遍历图片链接并

2015-11-25 09:43:20 3371

原创 Qt之导出PDF、HTML和Word(二)

五、HTML与Word搜索"Qt操作Word",可以找到通过QAxObject和COMObject联合直接读写Word的方法。但是,这个方法用起来不是很方便,在次,我介绍一种另类的方法,就是将“html格式代码保存到QString”,然后将QString导出为“.doc文件”。类似于直接保存“.html文件”,不同的是文件后缀名。如下示例代码: void SaveRep

2015-11-25 09:43:17 3143

原创 Qt之导出PDF、HTML和Word(一)

内容提要:1,Qt导出文件的基本原理;2,QPrinter、HTML和PDF;3,HTML编辑器;4,HTML和Word;5,qwt的图片和pdf导出一、Qt绘图和导出文件的基本原理Qt的二维图形引擎是基于QPainter类的。QPainter既可以绘制几何形状(点、线、矩形、椭圆、弧形、弦行、饼状图、多边形和贝塞尔曲线),也可以绘制像素映射、图像和文字。(参考《C++GUI

2015-11-25 09:43:15 9636

原创 Qt5(VS版)+QWT编译、安装和配置

一、VS和QT的安装1,安装VS2012或VS2013,并安装VS助手;2,安装qt-opensource-windows-x86-msvc2013_32-5.3.2.exe。3,新建mainwindow工程测试,可以正常运行,但不能debug。4,安装QT插件“qt-vs-addin-1.2.4-opensource.exe”。以上步骤完成之后,VS主界面菜单栏会出现QT的选项。注

2015-11-25 09:43:12 2251

原创 Qt之操作Excel

本文主要参考博客:Qt之操作Excel和EXCEL_VBA完全手册,为公司项目设计了一个”Report toExcel“的功能。本文浅谈了几点我对Qt操作Excel编程的一些体会。一、什么是VBAVisual BasicApplication是一种自动化语言(过去称为“宏语言”),可以用它是常用的过程或进程自动化,可以创建自定义的解决方案。目前,主要用它来扩展Windowoffice的功

2015-11-25 09:43:10 11239 2

原创 浅谈:函数指针、仿函数和函数适配…

一,仿函数是什么前几天写了篇博客——浅谈函数指针,主要讲我对函数指针的理解和应用经验。今天,翻看了《C++PrimerPlus》第16章“函数对象”这一节,发现C++中还有比函数指针更高层次的抽象——functor,中文名为“仿函数”“类函数”或“函数对象”。它的实际就是“重载了'operator()'的类”,并兼容函数指针。如下:class Linear{private:   do

2015-11-25 09:43:07 1259

原创 浅谈一般函数指针和类的非静态成员…

1,语法2,应用场景3,应用技巧4,回调函数参考《C++ Primer Plus》《Effective C++》和“博客:类的成员函数指针”一、函数指针的一般原理与数据项类似,函数也有地址。函数的地址是存储其机器语言代码的内存的起始地址。函数调用,实际上就是执行内存在以函数地址为起始点的这段机器码,故只要获取函数地址,即可执行函数调用。而函数指针就是这样一中指向某类特定函数的的内存

2015-11-25 09:43:02 665

原创 Qt5(minGW版)+Qwt编译和安装

一、软件获取1,百度“qt官网”,选择“Download”页面,然后需要注册并下载qt-opensource-windows-x86-mingw491_opengl-5.4.1.exe2,百度“qwt官网”,在Downloads区,选择qwt project page,跳转到下载页面;二、Qt安装1,双击“qt-opensource-windows-x86-mingw491_openg

2015-11-25 09:42:59 3294

原创 try-catch应用心得

一、C/C++编程中的异常机制1,函数返回值判断普通的函数无返回值类型,如void func(intn)。如果函数内部有逻辑错误,仅仅是return,函数的调用者无法知道该函数是正常执行完毕返回的还是异常返回的。如果将返回值改为bool型或者int型,则调用者可以通过判断返回值,来确定被调函数是否有异常。2,全局变量程序中定义一个全局变量,任何函数发生异常时,都可以去修改该全局变量,调

2015-11-25 09:42:57 752

原创 Qt调试信息分类和qDebug()导出到文…

本文主要参考“一去、二三里”的博文Qt之日志输出文件和Qt之日志输出窗口以及Qt的帮助文档,index"qInstallMessageHandler",并对他们进行了一些分析和优化。1,"qInstallMessageHandler"的原理,应该是“publisher-subscriber”(发布/订阅模式),通过该函数将自定义的log输出函数注册到Qt的框架中,替换Qt默认的将log输出到窗

2015-11-25 09:42:54 2496

原创 小技巧:防跨文件或跨包类型重定义

C++编程中,用户经常会自定义类型,如enum、struct等。一般地,这些自定义类型都放在头文件中定义,以便传递给其他类使用(#include该头文件即可)。如果是功能相关的类,直接包含该头文件即可使用这个自定义类型,如果不是功能相关的类,仅仅为了使用该自定义类型而包含这个头文件,会增加代码(类)的耦合性。如果不想增加代码的耦合性,又想跨功能模块使用某个自定义类型,一般的做法是,新建一个单独

2015-11-25 09:42:51 600

原创 Qt和Standard C++智能指针比较

一、相关知识总结C++的智能指针是通过模版类来实现的。其中,模版(template)让它可以匹配任一指针类型,(记住,它默认匹配指针类型);类,将指针模版进行封装,在析构函数中进行delete操作,由于类对象过期时(或遇到异常栈回滚时),会自动调用析构函数,故可以实现自动堆内存管理。参考《C++Primer Plus》StandardC++提供三种智能指针:auto_ptr、unique

2015-11-25 09:42:49 1182

原创 C++静态函数和全局结构体变量应用…

应用场景:要求:1,某个C++工程中,需要在很多个类对象中,获取一个分类信息,并根据分类信息执行不同的操作;2,该分类信息需要在工程代码的入口类构造函数中赋值,其他地方最好限制为只读。待选方案:1,全局结构体变量;2,类的静态函数; 功能代码段一:#ifndef CATEGORYINFO#define CATEGORYINFO#include "SF_RFID_Com

2015-11-25 09:42:46 3766

原创 Qt中应用STL算法库编译error分析

首先,使用QCreator新建一个默认的mainwindow工程,在修改mainwindow.cpp的代码如下:#include "mainwindow.h"#include "ui_mainwindow.h"#include#include#includeMainWindow::MainWindow(QWidget *parent) :   QMainWindow(paren

2015-11-25 09:42:44 940

原创 容器遍历之foreach学习心得

C++中遍历容器的方法有很多种,如普通for循环+容器长度,STL迭代器等,其中,for each的用法最简洁。一、标准C++的写法如下:for each (object var in collection_to_loop){}注:在VS编辑器中,可以直接选择foreach即可生成,但生成的代码见上,for与each之间有空格。 STL的算法库中,还提供了一个for_each(

2015-11-25 09:42:41 1740 1

原创 为什么我要开博客

今天,偶然看了“刘未鹏—C++的罗浮宫”的CSDN博客,感触良多。首先,是惊叹博主深厚的编程功底和一直以来在计算机学习方面的执着;然后是感叹自己这么多年来的迷茫和错失;最后是,蓦然发现原来还有这么一条职业发展之路。刘未鹏博文提到,书写是为了更好的思考,也是为了挣脱地域的限制,交到更多志同道合的朋友。我深有体会,目前所在公司缺少技术交流的对象,正急需有这么一个渠道。除此之外,我还觉得,人生匆匆

2015-11-25 09:42:38 458

原创 C++之日志打印

Abstract:1,从console输出到文件文件输出;2,添加时间戳;3,添加类名;4,添加函数名、文件名和行号;5,跨线程调用;

2015-11-24 13:48:02 11911

《Windows驱动开发技术详解》源码

《Windows驱动开发技术详解》一书的源码,包括:DDK 编译版本和VC 版本。

2019-02-13

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除