自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 资源 (4)
  • 收藏
  • 关注

转载 MATLAB功率谱估计

close all; clc; clear all; fs = 1024; len = 1024; t = 0:1/fs:(len-1)/fs; x = 5.3 * sin(2*pi*16*t); ffty = fft(x, len); ffty = abs(ffty) / len; f = 0:fs/len:fs/2; plot(f, ffty(1:len/2+1)) title('FFT')

2017-01-19 11:06:52 4504 1

原创 虚函数的一点总结

最近看编程规范时看到关于虚函数的一些说明,参考了《深入浅出MFC》书中的说明,对虚函数有了一点想法,总结下来以便以后回顾。

2016-10-19 21:00:05 333

转载 值得推荐的C/C++框架和库

值得推荐的C/C++框架和库

2016-02-20 09:07:13 482

原创 Dll注入学习笔记

实现DLL注入的思路是让进程运行LoadLibrary函数,把我们的DLL装载进去,怎样让进程调用LoadLibrary函数呢?首先想到的办法就是在目标进程中创建一个新的线程来调用。比如: HANDLE WINAPI CreateRemoteThread(   __in          HANDLE hProcess,                          //线程被创建的进程句

2013-12-10 08:43:25 682

转载 glog的简单应用

今天在MFC环境下应用了一下glog,下面写一下使用过程(开发环境VS2008): 1.创建工程后,将编译好的libglog.dll和libglog.lib以及src/windows目录下的文件拷贝到工程目录下 2.添加头文件,并引入库文件,为了防止和中的ERROR定义冲突,加入宏定义GLOG_NO_ABBREVIATED_SEVERITIES如下: #define GLOG_NO_ABBR

2013-12-04 15:48:52 971

转载 google glog简介

本文是根据自己的理解翻译组织了glog的manual,鉴于自身的理解能力和英语水平,可能存在谬误,欢迎大家指出!英文原文见http://google-glog.googlecode.com/svn/trunk/doc/glog.html 1.   概述       Google glog是一个基于程序级记录日志信息的c++库,编程使用方式与c++的stream操作类似,例:

2013-12-04 15:32:17 623

转载 Python多线程学习

一、Python中的线程使用:     Python中使用线程有两种方式:函数或者用类来包装线程对象。 1、  函数式:调用thread模块中的start_new_thread()函数来产生新线程。如下例:   view plaincopy to clipboardprint? import time  import thread  def timer(no, int

2013-11-25 14:32:06 541

转载 C/C++程序员必须熟练应用的开源项目

作为一个经验丰富的C/C++程序员, 肯定亲手写过各种功能的代码, 比如封装过数据库访问的类, 封装过网络通信的类,封装过日志操作的类, 封装过文件访问的类, 封装过UI界面库等, 也在实际的项目中应用过, 但是回过头仔细想想,其实以前自己写过的这些代码,只能是在特定的项目或者特定的环境中使用, 对于自己来说, 在不同的项目中应用, 只需要复制代码, 改改也就可以了, 因为自己写的代码自己很熟悉。

2013-11-22 14:55:18 887

转载 Python正则表达式指南

1. 正则表达式基础 1.1. 简单介绍 正则表达式并不是Python的一部分。正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法,但功能十分强大。得益于这一点,在提供了正则表达式的语言里,正则表达式的语法都是一样的,区别只在于不同的编程语言实现支持的语法数量不同;但不用担心,不被支持的语法通常是不常用的部分。如果已经在其他语

2013-11-21 14:31:33 600

转载 Python串口编程(转载)

python的串口网上有很多例子,这里了只是把认为好的整理到一起。 首先,应该安装serial模块,还能开始后续的操作。我用的python2.6,serial模块可以在这里下载安装serial模块下载 1,字符串的发送接收 短接串口的2、3脚,创建一个文本,如: [python] view plaincopy import serial

2013-11-21 11:28:00 1003

原创 设计模式-状态模式

状态模式:当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。状态模式主要解决的是当控制一个对象状态转换的条件表达式过于复杂时的情况,把状态的判断逻辑转移到表示不同状态的一些列类当中,可以把复杂的判断逻辑简化。 好处:将与特定状态相关的行为局部化,并且将不同状态的行为分离开来,将特定的状态相关的行为放入一个对象中,通过定义新的子类可以很容易的增加新的状态和转换。 当一个对象

2013-10-24 21:28:33 448

原创 设计模式-观察者模式(二)

观察者模式有一个不足,在于所有观察者必须派生于同一个基类,并且实现方法Update,而在实际应用中,往往不能满足这种条件,因为不同的观察者可能是毫不相关的两个类,并且可能不会提供Update方法,解决的方法就是使用事件委托。 C++中没有提供委托模型,需要自己构造,我们最容易想到的就是使用函数指针,而要取得类的成员函数指针,我们需要如下定义: class A { public: void

2013-10-19 22:18:00 405

原创 设计模式-观察者模式(一)

定义:观察者模式,又叫发布-订阅模式。他定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使他们能够自动更新自己。 使用:一、当一个对象改变需要同时改变其他对象,同时它不知道具体有多少对象有待改变时,考虑观察者模式。             二、当一个抽象模型有两个方面,其中一方面依赖另一方面,这时用观察者模式可以将这两者封

2013-10-18 22:28:56 504

原创 设计模式-建造者模式

建造者模式:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。它主要适用于创建一些复杂的对象,这些对象内部构造间的构造顺序通常是稳定的,但对象内部的构建通常面临着复杂的变化。建造者模式是当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方法时适用的设计模式。 UML图如下: 相关类代码如下: // Builder.cpp : Define

2013-10-17 21:53:21 425

原创 设计模式-外观模式

外观模式:为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这一接口使得这一子系统更加容易使用。 使用:首先,在设计初期,应有意识的将两个不同的层分离,在层与层之间建立外观Facade。             其次,在开发阶段,子系统往往因为不断的重构演化而变得越来越复杂,增加一个外观Facade可以提供一个简单的接口,减少他们之间的依赖。             第三,在

2013-10-15 21:32:49 445

原创 设计模式-模板方法模式

模板方法模式定义:定义一个操作中的算法骨架,而把一些步骤延迟到子类中。模板方法模式可以让子类不改变一个算法的结构就可以改变算法的某些特定步骤。 说明:有时候,我们经常遇到由一些列步骤构成的过程需要执行,这个过程从高层看是相同的,但有些步骤的实现可能不同,这个时候可以考虑模板方法模式。 其结构图如下: 设计实例(抄试卷): #include using namespace

2013-10-11 21:14:32 343

原创 简单工厂模式、策略模式与工厂方法模式

用三种设计模式实现同一种功能:四则运算。     三种设计模式相同的部分为四则运算类的设计,包括基类,加法运算类,减法运算类,乘法运算类和除法运算类,其代码如下: class CClac { public: virtual int GetResult(int a,int b)=0; }; class CClacAdd:public CClac { public: virtual int

2013-08-26 21:53:56 521

原创 设计模式-代理模式

代理模式:为其他对象提供一种代理以控制对这个对象的访问。     代理模式的使用情况:     1. 远程代理,也就是为了一个对象在不同的地址空间提供局部代表,这样可以隐藏一个对象存在于不同地址空间的事实。     2. 虚拟代理,根据需要创建一个开销很大的对象,通过它来存放实例化需要很长时间的真实对象。     3. 安全代理,用来控制真实对象的访问权限。     4. 智能指引,当调

2013-08-20 22:06:36 369

原创 设计模式-装饰模式

装饰模式把每个要装饰的功能放在单独的类中,并在这个类中包含他要装饰的对象,当需要执行特殊行为时,客户端代码就可以根据需要有选择,有顺序的使用装饰功能包装对象了,他的好处就是有效的把类的核心功能和装饰功能区分开了,而且可以去除相关类中重复的装饰逻辑。但是需要注意装饰顺序。     #include #include class Person { private: char name[30]

2013-08-20 21:50:30 361

原创 算法导论二:快速排序

快速排序采用的是分治策略,其方法是将一个数组a[p,r]划分为两个子数组a[p,q-1],a[q+1,r],使其左子数组元素中的元素均小于等于a[q],右子数组元素均大于a[q],并递归划分两个子数组。其代码如下:     #include using namespace std; template int partition(T a,int p,int r) { //选择a[r]作为主

2013-08-18 21:25:53 445

原创 自己写的QQ美女找茬外挂

这里首先说一下原理:利用截屏的技术,讲当前QQ美女找茬的图片截屏下来,然后分析两幅图片相同位置的像素点,当两个点的差大于某个阀值时,将该点的颜色设置为红色。 下面根据源码具体讲解:     1.首先通过VC++的工具SPY++得到美女找茬窗口标题:“大家来找茬”,通过函数::FindWindow即可获得美女找茬窗口的句柄 hGame=::FindWindow(NULL,"大家来找茬");

2013-08-09 22:07:20 1592

原创 算法导论笔记一:算法设计之分治法

分治法的设计思想是利用某些算法递归的特性,将原问题分解为n个结构相似的子问题,递归解决这些子问题,在合并其结果,便得到原问题的解,代表算法为合并排序法。     合并排序法的原理是将原序列分为两个子序列,将两个子序列分别排序后进行合并,得到一个完整的排序序列。序列分解的最终结果是含有一个元素,单个元素即可视为已排序序列。合并排序的关键步骤是两个已排序序列的合并,其代码如下。#include u

2013-08-09 22:02:03 452

VC经验汇总

文档里面是最近一段时间在项目以及学习中所积累的经验,希望可以帮到大家

2018-08-10

华为编程规范

这是华为的C语言编程规范,按照该规范可以提升C代码的可靠性、可读性,对于编写高质量的C代码十分有帮助,是每一个程序员都应该学习的

2017-09-21

空空如也

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

TA关注的人

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