- 博客(10)
- 资源 (47)
- 收藏
- 关注
原创 设计模式-命令模式之重新理解
命令模式:将请求封装成对象,以便是用不同的请求参数化其他对象,同时也支持撤销操作。命令把命令的动作和命令的接受者封装在一起,也就是发出请求的对象和接受与执行这些请求的对象分隔开来。为什么命令的发出者不直接调用执行者呢?反而在中间包装了一层命令呢?这样的封装是为了实现调用者和接受者之间的解耦,同时还可以设计出多种命令形式(业务)。#pragma once//命令基类class WCom...
2019-11-28 23:25:37 160
原创 设计模式-装饰模式之重新理解
装饰模式:动态地将责任或者功能添加到对象上,是对象又增加了除去本身外的其他功能。在设计过程中,大家都知道一些基本的原则,比如多用组合少用继承。但是装饰模式就是使用到的继承。装饰者和被装饰的对象必须是一样的类型,也就是有共同的基类。这是关键的地方,装饰者是对被装饰者的扩展装饰而来的,装饰者本身和被装饰者属于同一种类型,它们具有相同的接口,装饰者能够替代被装饰者。示例:定义飞机类#pragma...
2019-11-28 21:54:42 104
原创 对已有类库扩展封装的代理(装饰)模式的实现
在项目开发中,经常会使用第三方库,包括外部封装或者是公司内部自己封装的类库。在使用这些类库的过程中,有时这些类库并不能全部满足我们的需求,需要我们在这些类库的基础之上进行扩展,以满足我们自己的需求,但是由于各种原因,这个类库的源码和维护人员已经不能找到了,需要自己在现有代码的基础之上进行开发,这就需要使用设计模式中的代理来实现新功能的扩展。例如一个库中的新类,里面有创建各种设备的功能,但是现有的...
2019-11-23 14:05:06 189
原创 Qt使用鼠标选中拖动实现数据的迁移
QT本是就支持鼠标左键选中拖动的功能,Drag和Drop。查看以下示例:拖动功能包含两个窗口:一个是源窗口,一个是目标窗口。在源窗口需要实现: void mousePressEvent(QMouseEvent *event) override; void mouseReleaseEvent(QMouseEvent *event) override; void mouseMoveEven...
2019-11-14 11:04:43 718
原创 VS+QT+ACE_TAO+OpenDDS使用链接中出现的问题
使用VS2013+QT5.7新建一个OpenDDS项目,假设已经包含目录和链接库都已经配置好了,编译通过了,但是在链接的时候,还是出现了错误:1>ReadData.obj : error LNK2001: 无法解析的外部符号 "__declspec(dllimport) public: long __cdecl ACE_Log_Msg::log(enum ACE_Log_Priority,...
2019-11-06 19:41:43 929
原创 OpenDDS制作编译idl文件之二
根据idl可以编译出通信使用的DLL,也同时可以编译出“发布者”和“订阅者”作为测试使用,修改mpc文件就可以;project(*Publisher) : dcpsexe, dcps_tcp, svc_utils { after += *Common exename = publisher requires += tao_orbsvcs requires += no_o...
2019-11-06 12:28:22 1001
原创 OpenDDS制作编译idl文件之一
1.介绍IDL(接口描述语言)是一种使用类似C ++风格定义结构的文本文件。该文件包含必须交换的数据结构。结构由struct关键字定义;IDL文件使用DCPS_DATA_TYPE定义一个结构体数据类型,OpenDDS要求数据类型必须是一个结构体,并且是以#pragma的方式进行传输的,以idl文件形式存在。使用DCPS_DATA_KEY定义了一个数据类型的键。一种数据类型可能有0个或多个键。...
2019-11-06 09:05:09 3522
原创 使用VS2013+32位编译OpenDDS
项目中使用OpenDDS作为通信的框架,然后在VS2013的编辑环境下重新进行编译了一下。1. 环境VS2013 + 32位 + Windowss642. 安装Perl2.1.下载安装下载地址:https://www.activestate.com/products/perl/downloads/下载完成后,点击直接安装:安装过程中选择全部安装:2.2.验证安装完成后,在控...
2019-11-05 18:06:46 1082 1
原创 QT 实现功能菜单的隐藏和显示
大家都知道微软的Word,上面的功能菜单很丰富,并且还可以在隐藏和显示,为文档区提供更大的显示控件,非常的方便。再此利用QT自带的控件实现了一个类似的功能,先看示例:实现功能菜单的隐藏和显示主要用到QTabBar和QTabWidget这两个控件。QTabWidget在显示的时候,隐藏掉自身带的tabBar,//保存显隐状态bool _showTabWidget = true;_tabW...
2019-11-04 18:08:13 5942 8
原创 C++中内联函数的使用
在C++中一个普通函数的调用的过程:程序会保存当前函数的执行现场,将函数中的局部变量以及函数地址压入堆栈,然后再将即将调用的新函数加载到内存中,这要经历复制参数值、跳转到所调用函数的内存位置、执行函数代码、存储函数返回值等过程,当函数执行完后,再获取之前正在调用的函数的地址,回去继续执行那个函数。虽然这些函数调用在现代的CPU运行过程中不算什么,但是相对于直接运行代码,运行时间开销简直太多了。...
2019-11-01 14:51:13 750
ICEGUI.rar
2020-08-03
QtGuiProductConsume.zip
2021-10-10
QtInterface.zip
2021-09-18
TimePlan.zip
2021-04-16
Tetris.zip
2021-02-06
IceServerClient.rar
2020-11-18
build_step_self.rar
2020-09-24
MoveChildWgt.rar
2020-09-22
IceApplication.rar
2020-07-27
Thread.zip
2020-07-21
GraphTraversal.zip
2020-01-14
QtGuiMaze.zip
2020-01-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人