自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 收藏
  • 关注

原创 6 对于operator new的内存泄露检测

参看基础第一节,我们可以做一个比较简易的内存泄露捕捉器.其原理就是重载全局的operator new 和全局的operator delete,然后在重载中做一些小小的手段即可6.1 MemLeak.h代码如下:<文件在Fade/MemLeak/MemLeak.h>/*************************************************************...

2018-03-14 22:17:36 342

原创 2.使用Http协议Post上传文件

2.1 背景公司产品需要做一个关于收集程序崩溃信息的模块,需要客户端程序在崩溃发生后将崩溃日志以及转储文件发送到后台。后台是HttpServer 理所当然的便想到了使用Http的Post来上传文件。2.2 协议格式http协议网上说的有很多,http协议大致有三个部分:Request-Line/Respone-Line,Header,Body三个部分。虽然网上说使用Http协议的Post上传文件的...

2018-03-14 22:06:30 15758 1

原创 5 单实例类

5.1 缘由单实例类,其作用类似于全局变量,实现的方法有很多,如CEF3的一些代码中就直接使用的全局变量,不过这个全局变量是在一个未命名的namespace里面定义的.在Loki库里面也对单件模式也有非常翔实的描述,但是那个太多,太大,我个人觉得反而将单实例类的概念淹没了.试想一下,如果实现一个通用的单实例设备出来,通过引用这个设备,我们就可以方便的生产出单实例类.碰到这种问题我们首先的想法就是:...

2018-03-12 22:44:06 426

原创 4 锁(进程内)

4.1 缘由在多线程程序中,不可避免的需要使用到锁,以防止访问冲突.STL中的主要容器如:map,vector也不是排它访问的,在多线程下可能会导致iterator失效而产生程序崩溃的问题.Windows为我们提供了一些锁机制,但是却用起来不方便.下面我们会简单的封装一下,让其用起来更方便4.2 源码及说明4.2.1 一个简单封装的锁和一个扩展的生命周期锁如下:这是一个名为Lock.h的文件的内容...

2018-03-12 22:35:45 254

原创 3 打印崩溃信息以及输出崩溃Dump文件

3.1 缘由本来不想写这一小结的,感觉有点跳跃性,因为对WINSDK不熟悉会导致这一小节看起来有些云雾. 包括我本人,对这一块也是畏畏缩缩的查了半天MSDN.但是由于第2节中提到了打印堆栈信息,就想提一提这个事情.而且现在除了在开发环境中可以方便的Debug,我们的程序却主要应用于客户端环境,那里可没有VS,也没有各种用于调试的工具.那我们只在程序崩溃或者异常时候收集其信息,然后将该信息拿到开发环...

2018-03-12 22:30:05 1409

原创 2 输出堆栈信息

2.1 缘由在程序开发调试过程中,很多时候我们都需要打印堆栈信息,来了解程序的某些部位的调用层次,这就需要我们打印堆栈信息了.MFC库中为我们提供了一个简单的打印堆栈信息的函数AfxDumpStack,但是这个函数仅仅能将打印信息输出到TRACE或者剪贴板.这不是我们需要的,我们需要的是将其打印到控制台,或者写入到日志中.2.2 源码及说明如下代码是一个头文件,用于打印堆栈信息.<文件:FA...

2018-03-12 22:22:05 991

原创 1 打印信息

1.1 缘由在日常的VC开发中,有充分的理由需要一个输出打印信息的地方,微软为我们提供了TRACE,或者ATLTRACE,但是这必须是在DEBUG下,并且需要IDE或者Windbg工具的配合使用.但实际上有一种更简单的方式,不仅仅在DEBUG下,而且在RELEASE下,都可以不依赖任何工具的为我们打印信息或者提供控制.1.2 使用Console Window可以让窗体应用中拥有ConsoleWin...

2018-03-12 21:49:19 468

原创 1.诡异的ERROR_FILE_NOT_FOUND

1.1 背景前一段时间,客户机器上的产品一直登陆不上,说是以前一直可以用,突然就用不了了.登录时候会一直报:登录超时.而且,现场的同事将产品卸载重装也还是一样.故事就此拉开了序幕.1.2 代码的查找登录是通过HTTP_POST协议来实现的,大致的代码如下:m_pConnection = m_pSession->GetHttpConnection(strServer, ...

2018-03-10 16:59:59 20188 1

空空如也

空空如也

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

TA关注的人

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