自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 AOP框架实现之一

AOP实现的关键是动态织入,实现技术就是拦截目标方法,只要拦截了目标方法,我们就可以在目标方法执行前后做一些非核心逻辑,。       通过继承方式来实现拦截的话,需要派生基类并且实现基类接口,这增加了程序的耦合性。为了降低耦合性,这里采用模板来约束。       要求:每个切面必须有Before(Args...)或After(Args...)方法,用来处理核心逻辑执行前后的非核心逻辑。

2016-08-02 10:26:29 353

原创 c++11之function_traits

function_traits例:int func(int a,string b);function_traits::function_type; //获取函数类型 int _cdecl(int, string)function_traits::return_type; //intfunction_traits::arity; //2function_traits::arg_t

2016-07-28 19:56:49 2806

原创 c++11 之可变参数模板

目的:包含0到任意个模板参数声明可变参数模板需要在typename或class 后面加上省略号“...”一、可变参数模板函数templatevoid f(T...args){ cout}可变参数展开有两种方式:1.通过递归的模板函数来将参数展开2.通过逗号表达式和初始化列表方式展开参数包对于1介绍一种通过type_traits来展开并打印参数包,

2016-07-28 14:16:18 6686 1

原创 QT 学习之路 图片显示

突然不想写了。。。。。。。。。

2016-07-28 11:16:05 339

原创 如何在VS2013中打印内存泄露信息

1,在程序开始的地方,一般是main函数开头处设置#ifndef _CRTDBG_MAP_ALLOC#define _CRTDBG_MAP_ALLOC#endif_CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF);2 将new 封装起来#ifdef NDEBUG#define DBG_

2016-07-27 19:35:17 634

原创 boost智能指针 与 内存分配

1. boost::scoped_ptr 这个智能指针只能在本作用域里使用,不能转让写下原型是最好的:templateclass scoped_ptr{  private:     T* ptr;     scoped_ptr(scoped_ptr const & );     scoped_ptr& operator=(scoped_ptr const&);

2016-07-27 13:28:19 534

原创 c++11 之type_traits

1.type_traits-类型萃取 (1)type_traits可以在一定程度上消除 switch-case 或者 if-else语句,降低程序的复杂度(2)可以在编译期就检查出是否是正确类型1.1基本的type_traits定义编译期常量  struct GetLeftSize{   static const int value =1;}或 st

2016-07-25 18:57:21 1713 1

原创 接收到含有结束符的字符怎么办

目的:将含有结束符'\0'的char*变量保存到string中string str_replace;str_replace.resize(dw_byte_read);memcpy(const_cast(str_replace.c_str()), str, dw_byte_read);

2016-07-25 17:46:50 394

原创 串口通信--两个主机之间

前提:硬件:两个主机之间通过串口线相连,中间有个串口转换器软件:已经打开COM1端口目标:两台pc之间可以通过串口通信要求:串口线应该用交叉线,非直连线。直通一般用于延长PC与设备,将2、3、5分别连接2、3、5,因为PC上一般为公头,而设备上多为母头,所以正好它们是通用的,既可用于延长也可用于连接;交叉一般用于PC与PC对接,将2对3、3对2、5对5,一般两头都是

2016-07-25 17:42:29 1318

转载 Windows核心编程HOOK部分(好酷)

http://blog.chinaunix.net/uid-26275986-id-3203048.html

2016-03-21 16:38:36 588

转载 多线程中的锁系统(三)-WaitHandle、AutoResetEvent、ManualResetEvent

http://bbs.it-home.org/thread-30922-1-8.html

2016-03-13 15:55:48 285

原创 volatile关键字的作用

volatile 告诉编译器i是随时可能发生变化的,每次使用它的时候必须从i的地址中读取,因而编译器生成的可执行码会重新从i的地址读取数据放在k中。 搜索volatile 影响编译器编译的结果,指出,volatile 变量是随时可能发生变化的,与volatile变量有关的运算,不要进行编译优化,以免出错,(VC++ 在产生release版可执行码时会进行编译优化,加volati

2016-03-11 15:46:41 231

原创 领导者追随者模式

适用条件:多线程处理任务过程:有一个线程作为领导者,等待事件的发生;其他的线程作为追随者,仅仅是睡眠。 假如有事件需要处理,领导者会从追随者中指定一个新的领导者,自己去处理事件。 唤醒的追随者作为新的领导者等待事件的发生。 处理事件的线程处理完毕以后,就会成为追随者的一员,直到被唤醒成为领导者。 假如需要处理的事件太多,而线程数量不够(能够动态创建线程处理另当别论),则有的

2016-03-11 09:54:09 1751

空空如也

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

TA关注的人

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