- 博客(31)
- 收藏
- 关注
原创 C++ 简单的语音合成(TTS,即文字转语音)类
微软win7及以上版本自带的语音合成引擎,可以直接拿来用,不需要额外的dll文件,只需要引用头文件即可, 封装一个简单的类用来做语音合成如下:tts.h#pragma once#include <Windows.h>#include "sapi.h"#include <list>#include <string>#include "sphelper...
2019-08-28 09:53:30
5027
2
原创 C++/Windows下使用命名管道进行进程间通讯的最简单例子
发送方:1、创建管道2、阻塞式连接(等待接收方)3、发送数据#include<iostream>#include<windows.h>#include<ctime>using namespace std;int main(){ HANDLE hPipe = CreateNamedPipe(TEXT("\\\\.\\Pipe\\myp...
2019-04-24 14:53:51
1436
原创 从零开始最简单Qt/C++设计模式总结七:单例模式(懒汉单例和饿汉单例)
单例模式就是指一个类在整个程序中只有一个实例。确保一些不需要重复创建的类创建多余的实例。特别是某些工具类,在所有地方使用该类都只需要一个实例。基本思路就是在单例类内部创建一个静态的自身对象,并自己管理自己。下面代码用锤子Hammer来表示这个工具,简单的实现如下1、懒汉模式懒汉模式就是指铁匠是个懒汉,这个锤子类的实例在没人用的时候,铁匠不去造它,这样做能节约铁匠铺的空间。#include...
2019-02-14 11:14:14
830
原创 从零开始最简单Qt/C++设计模式总结六:建造者模式
#include &amp;lt;QCoreApplication&amp;gt;#include &amp;lt;QList&amp;gt;#include &amp;lt;QDebug&amp;gt;#include &amp;lt;QString&amp;gt;///NOTE6建造者模式//建造者模式提供了一种模板使得在构建方法不变或者不公开的情况下根
2019-02-13 11:38:39
556
原创 从零开始最简单Qt/C++设计模式总结五:桥接模式
桥接模式类似于抽象工厂模式。抽象工厂将不同工厂生产的不同产品分离开来,这样,在使用某些特定产品时新建一个工厂即可,也可以很方便地对不同的产品进行修改,实现抽象与实现分离,即每个工厂的抽象与具体生产的产品细节分离。桥接模式则相当于为每一种工厂的子类引入抽象的产品对象成员,使得每一个新建的工厂都能生产所有的产品,实现抽象与实现分离。代码如下#include &amp;amp;amp;lt;QCoreApplicati...
2019-02-13 10:09:35
600
原创 从零开始最简单Qt/C++设计模式总结四:工厂模式(简单工厂、一般工厂及抽象工厂)
代码基于Qt5.9+mingw32#include &amp;lt;QCoreApplication&amp;gt;#include &amp;lt;QList&amp;gt;#include &amp;lt;QDebug&amp;gt;///NOTE:4抽象工厂模式的例子--20190212///抽象工厂的作用是统一管理某产品的生产过程(即某类的实例化过程)///产品A和产品
2019-02-12 10:08:09
1983
原创 Qt QChart设置内边界和外边界
QChart的内边界和外边界是指如下区域 chartCurrent->layout()->setContentsMargins(0, 0, 0, 0);//设置外边界全部为0 chartCurrent->setMargins(QMargins(0, 0, 0, 0));//设置内边界全部为0 chartCurrent->setBackgroundRo...
2018-10-15 10:55:44
8343
6
原创 从零开始最简单Qt/C++设计模式总结三:适配器模式(类适配器和对象适配器)
代码基于Qt5.9+mingw32#include &amp;amp;lt;QCoreApplication&amp;amp;gt;#include &amp;amp;lt;QList&amp;amp;gt;#include &amp;amp;lt;QDebug&amp;amp;gt;///NOTE:3适配器模式的例子--20180910///适配器的功能就是将本来没有某项
2018-09-10 20:27:42
403
原创 从零开始最简单Qt/C++设计模式总结二:装饰者模式
代码基于Qt5.9+mingw32#include <QCoreApplication>#include <QList>#include <QDebug>//装饰者模式的例子--20180910///装饰者模式的基本用途是用于任意组合对象,就像三明治的制作过程一样//装饰者模式的原理跟观察者也一样是面向对象的运行时类型识别特性,将每个组件类...
2018-09-10 20:22:22
361
1
原创 从零开始最简单Qt/C++设计模式总结一:观察者模式
代码基于Qt5.9-mingw32编译#include <QCoreApplication>#include <QList>#include <QDebug>///观察者模式的例子--ssshhhaaaooo20180910///观察者模式的基本用途是用于多个对象(观察者)监视某个对象(被观察者)的变化,并各自作出自己的反应//观察者的抽象类...
2018-09-10 20:15:58
624
原创 算法学习应用:基于欧几里得距离算法的波形匹配方法尝试
前言这几天项目上要用到波形匹配并且计算匹配度,由于以前没有相关经验,遂找了一大堆声纹识别的算法(MFCC、DTW等)来看,发现和我的需求有点不一样,偶然看到一篇讲用欧氏距离进行图像识别匹配的博文,觉得这个才比较像我的需求,遂写了工程来验证,发现效果果然不错,写下来分享并作笔记。1、欧几里得距离算法欧氏距离算法原理其实很简单,用一个公式就能讲清楚了 d(x,y)=(√∑ni=1(xi−...
2018-06-27 12:31:35
4861
1
原创 使用std::vector容器中犯的一个错误
类似std::vector< int*>* vpInt; 这种声明需要注意的地方当使用下列方式声明一个包含了指针元素(其实不一定是指针元素)的容器指针时std::vector<int*>* vpInt=new std::vector<int*>int num=8,tmp=7;vpInt->push_back(&int);vpInt...
2018-05-24 15:07:05
19580
1
原创 基础算法学习(04)-算法的时间复杂度计算简明笔记
1、时间复杂度的计算公式T(n)=O(f(n)) 其中T(n)就是指时间复杂度本身 O()是运算符,用以去除低次项和系数,简化叙述 f(n)指程序的所有语句执行次数 n为程序的规模,比如for(int i=0;i2、简单的分析方法(1)赋值语句无论有几句复杂度都为O(1) (2)简单的循环语句,有一层复杂度就为O(n),两层就为O(n2) (3)循环语句的循环次数随规模而变的,进行简单的
2018-03-07 12:06:39
565
转载 MFC 调用系统ping工具检测网络
转载自:http://blog.csdn.net/jiangqin115/article/details/44756905,实际测试后记录DWORD CChildView::WinExecAndWait32(LPCTSTR lpszAppPath, LPCTSTR lpParameters, LPCTSTR lpszDirectory, DWORD dwMillisecond
2018-01-11 10:17:28
2504
原创 MFC 一种比较笨的办法实现多线程执行类成员函数
本文作为小弟初学多线程的笔记,如有纰漏大神轻喷。。还是使用全局函数作为线程函数,就不用比较花里胡哨的办法比如联合体,友元函数等来将类成员函数作为线程函数使用了。
2018-01-10 16:35:10
878
转载 MFC 将软件风格从传统风格改为win7以后的扁平化风格
在sdtafx.h中加入以下代码,并且在项目属性页中将 链接器->清单文件->生成清单 改为“是” 清单工具->输入和输出->嵌入清单 改为“是”#if defined _M_IX86 #pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' vers
2017-12-22 11:25:04
4084
原创 MFC CListCtrl控件隐藏滚动条但是保留用鼠标滚轮滚动效果的方法
重载以下两个消息 ON_WM_MOUSEWHEEL() ON_WM_NCCALCSIZE()在响应函数中void CSolidListCtrl::OnNcCalcSize(BOOL bCalcValidRects, NCCALCSIZE_PARAMS* lpncsp){ ShowScrollBar(SB_VERT | SB_HORZ, FALSE); CListCtr
2017-12-21 15:28:50
2946
2
原创 MFC 基于CListCtrl类的可编辑列表类
最近要用到,自己以网友的思路写了一个很简单但是很使用的MFC拓展类。将代码贴在这里。头文件中class CSolidListCtrl:public CListCtrl{public: CSolidListCtrl() {}; ~CSolidListCtrl() {}; LVHITTESTINFO info; CEdit m_edit; DE
2017-12-21 11:38:09
1526
原创 MFC VS2015设置快捷键响应函数
1、打开资源管理视图添加或修改快捷键资源 注意,这里的IDR_MAINFRAME是快捷键资源,每个快捷键下的ID是快捷键ID,待会要用到的是前者,不要搞错。比如要给Ctrl+C添加函数,右键该ID添加响应函数到需要的类下 编写响应函数的内容如:void COutputWnd::OnEditCopy(){ CString strLabel; m_wndTabs.GetTabLab
2017-12-20 16:54:02
1430
原创 MFC CMFCPropertyGridCtrl控件使用问题:刷新后底部出现黑边
像这种情况,折叠后有时候就会出现,国内网上就这个帖子谈到这个问题: http://bbs.csdn.net/topics/390466900但是测试了他的解决方案发现没用。StackOverflow每找到相关问题,后来在MSDN论坛找到了: https://social.msdn.microsoft.com/Forums/vstudio/en-US/16454c1f-f70a-47a8-99bd
2017-12-14 10:37:36
1158
1
原创 基础算法学习(03)-插值计算(拉格朗日插值法和牛顿插值法)
插值问题1、算法作用插值问题是一种软件开发中较为常见的问题,比如已知三个电流输出时采集到的三个采样电流,用软件的方法尽量精确地求出第四个输出时的采样电流。本质上,就是多项式的求解。多项式求解有很多数学上的方法,这里主要研究的是两种数学上的经典算法得出的计算机算法-拉格朗日插值法和牛顿插值法。ht
2017-10-12 21:30:32
3029
原创 基础算法学习(02)-Union-Find问题
Union-Find问题 在一堆数据集合中找到两个触点是否被链接在一起,如果不在一起将这两个点链接在一起,并且最后得出这种链接关系一共有多少个。
2017-10-11 14:35:24
341
原创 基础算法学习(01)-二分查找
前言正式作为一只程序猿参加工作差不多快一年了,由于本科是自动化专业,对数据结构和算法这块实在没有计算机专业科班出身的同学来得专业,在工作中也不断发现自己的短板,于是找来经典的算法书《算法(第四版)》进行系统学习。
2017-10-09 15:46:27
484
原创 MFC 双缓冲多重绘图去除闪烁的万能函数模板
使用如下函数包含所需绘图的所有函数void CXXXXXDlg::PaintAll(){ CDC *dcPicBox; dcPicBox = m_picBox1.GetDC();//获取绘图区域的DC,m_picBox1视自己所用的绘图区变量改变 m_picBox1.UpdateWindow();//刷新绘图区域 m_picBox1.GetClientRect(&r
2017-09-08 17:42:57
341
原创 MFC 资源脚本问题:fatal error CVT1100: 资源重复。类型: AFX DIALOG LAYOUT
用一个文本编辑器打开.rc文件,搜索AFX DIALOG LAYOUT这种类型,在结果里查看重复项是哪一项,删除即可。AFX DIALOG LAYOUT是.rc脚本里的一种对象类型,除此之外还有Menu,Dialog等其它类型。一般发生这种错误是因为手动修改了.rc文件所致。不懂.rc文件结构的不要轻易修改。感兴趣可以看这篇博文http://blog.csdn.net/zgrjkflmkyc/art
2017-09-06 17:38:19
1843
转载 MFC如何实现全屏效果
转载自:http://blog.csdn.net/chen825919148/article/details/7741804 算是做个笔记吧方法一:在Dialog::OnInitDialog()中加入:ModifyStyle(WS_CAPTION,0,0); // 如果只是要普通的全屏,不想去掉标题栏,就不用第一个语句SendMessage(WM_SYSC
2017-07-31 10:03:17
883
原创 MFC 在某些特定条件下改变控件内文本的颜色的方法
1.在主窗口创建WM_CTLCOLOR消息将自动生成如下响应函数HBRUSH CCST_DLXZ::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor){ HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); //// TODO: 在此更改 DC 的任何特性 return
2017-06-23 17:56:18
1129
原创 MFC 改变窗口内所有控件 字体 的简单方法
1、首先声明回调函数static BOOL CALLBACK EnumChildProc(HWND hwndChild, LPARAM lParam);2、在 OnInitDialog() 中添加如下函数CFont * f;f = new CFont;f->CreateFont(16, // nHeight 0, // nWidth 0, // nEscapement
2017-06-20 14:42:15
6340
3
原创 MFC Tab控件子窗口调用父窗口资源方法
原文:http://blog.csdn.net/u012273127/article/details/60735602 修改部分用法:1、如果父窗口不是主窗口,甚至连主窗口的子窗口都不是,没必要用ManFrm.h,直接在子窗口类的CSon.cpp文件中包含父窗口类的CFather.h文件。注意,必须在CSon.cpp中包含,因为如果在子窗口类的CSon.h文件中包含,可能造成重复定义,
2017-06-19 09:29:45
2891
1
原创 MFC 0xC000041D 回调期间遇到未处理的异常
MFC 0xC000041D 回调期间遇到未处理的异常如果错误发生在OnInitDialog()时,可以尝试检查下DoDataExchange(CDataExchange* pDX)函数中的资源和对应关系是不是重复了。 比如:... DDX_Control(pDX, IDC_CHECK_IB_SIGNAL, m_checkIbSignal); DDX_Control(pDX, I
2017-05-25 11:09:48
6593
转载 MFC更改控件ID后,编译器会提示“未定义的标识符”
根据@whu飞云追月 的说法 原因是VS的bug,更改控件ID后,之前的ID在resource.h中占用了新ID的标识符。重新关闭vs再打开即可,或者在resource.h中删除标识符冲突的老ID。
2017-05-12 16:03:40
3825
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人