摘要:Visual LeakDetector(VLD)是一款用于Visual C++的免费的内存泄露检测工具。它的特点有:(1)、它是免费开源的,采用LGPL协议;(2)、它可以得到内存泄露点的调用堆栈,可以获取到所在文件及行号;(3)、它可以得到泄露内存的完整数据;(4)、它可以设置内存泄露报告的级别。
阅读全文
随笔分类 - C++/C
摘要:1.1 DllMain简介 跟exe有个main或者WinMain入口函数一样,DLL也有一个入口函数,就是DllMain。以“DllMain”为关键字,来看看MSDN帮助文档怎么介绍这个函数的。 The DllMain function is an optional method of entry
阅读全文
摘要:现在很多语言都内置了线程池实现,但C++中却没有。本文列举一些C++实现的线程池工具。 Boost.Threadpool 项目首页:https://threadpool.sourceforge.net Boost.Threadpool是一个基于Boost、跨平台的C++线程池库。Boost.Thre
阅读全文
摘要:简介 Pebble定位为一个好用、可靠、高性能、易扩展的分布式开发框架,支持多种使用方式: 使用完整的pebble框架 独立使用各pebble子模块 在其他框架中嵌入pebble框架。 Pebble具备良好的扩展性,可非常方便的扩展对接现有系统。基于该框架,可以让开发者只需专注于业务逻辑的实现,而不
阅读全文
摘要:对于托管代码调用非托管DLL文件,已经是非常普遍的事情,下面写一下如何通过托管代码(C#)像调试托管代码一样调试DLL中的代码。 注意:(1)【dll工程和调用dll的exe工程需要在同一个解决方案中】 (2) 64位与32位生成的路径不一样,这个在设置路径的时候,一定要千万小心。否则可能会导致32
阅读全文
摘要:信号量的主要函数有: sem_init用于对指定信号初始化,pshared为0,表示信号在当前进程的多个线程之间共享,value表示初始化信号的值。 sem_wait可以用来阻塞当前线程,直到信号量的值大于0,解除阻塞。解除阻塞后,sem的值-1,表示公共资源被执行减少了。例如:如果你对一个值为2的
阅读全文
摘要:背景 之前写图像算法的程序都是在window10下使用VS编写,VS这个IDE结合“ImageWatch.vsix“插件,用于调试opencv相关的图像算法程序十分方便。后因项目需要,需将相关程序移植到Linux系统,才开始研究如何使用VS编写Linux上的Opencv程序。 一、Ubuntu安装相
阅读全文
摘要:Visual Studio 2017 微软的宇宙第一IDE Visual Studio 2017正式版出来了,地址是:https://www.visualstudio.com/vs/whatsnew/ VS2017亮点很多,包括模块化安装、启动速度加快(第一次启动加快50%以上)、github插件、
阅读全文
摘要:转载地址:点击打开链接 根据VisualGDB官网(https://visualgdb.com)的帮助文档大致翻译而成。主要是作为个人学习记录。有错误的地方,Robin欢迎大家指正。 本文介绍如何使用VS来创建、构建、调试一个基于CMake的项目。当编辑该项目时,会使用高级CMake项目子系统来自动
阅读全文
摘要:字节序(byte order)和位序(bit order) 在网络编程中经常会提到网络字节序和主机序,也就是说当一个对象由多个字节组成的时候需要注意对象的多个字节在内存中的顺序。 以前我也基本只了解过字节序,但是有一天当我看到ip.h中对IP头部结构体struct iphdr的定义时,我发现其中竟然
阅读全文
摘要:转载地址点击打开链接 1、生成dmp的程序 #include <dbghelp.h> #pragma comment(lib, "dbghelp.lib")//设置异常处理回调函数SetUnhandledExceptionFilter(UnhandledExceptionFilter);//异常处理
阅读全文
摘要:最近在做个程序,虽然是小型程序,但是使用的内存量却很大,动辄达到10G。在64位系统上可以轻松实现,无奈我是基于32位的系统进行开发,程序还没跑起来就已经被终止了。 试过很多办法,包括文件内存映射等,效率不高,而且由于32位应用程序的限制,可用的内存地址最高只能到0x7FFFFFFF,能调用的内存到
阅读全文
摘要:关于32位程序申请大内存问题(1.6G). 我在win7 64系统上面测试Visual studio 10 [c] view plain copy int* Test=new int[1024*1024*200]; int* Test2=new int[1024*1024*200]; [c] vie
阅读全文
摘要:项目做到一定阶段,常常须要在原来的project上调用外部程序。 Qt为此提供了QProcess类,QProcess可用于完毕启动外部程序,并与之交互通信。一、启动外部程序的两种方式:(1)一体式:void QProcess::start(const QString & program, const
阅读全文
摘要:在开发网络应用程序时,各个模块之间的数据通信可谓是家常便饭,为了应对这些数据通信时数据交换的要求,程序员发明了各种数据格式:采用二进制数据结构(早期 C 程序员)、采用 XML、采用SOAP(坑人的设计)、采用 URL 编码、采用JSON格式等。客户端与服务端交互时采用这些数据格式进行数据交换时,必
阅读全文
摘要:闲来无事发现了一个基于C++实现的序列化工具,相比于其他(比如Boost serialization或Google protobuf,恰巧都用过,以后再介绍),使用简单,感觉不错,下面做个摸索。 cereal介绍 cereal是一个开源的(BSD License)、轻量级的、支持C++11特性的、仅
阅读全文
摘要:前段时间刚试用了一个序列化工具cereal,请看cereal:C++实现的开源序列化库,打算再总结下我对google proto buf序列化库的使用呢, 结果还没动手,大Google又出了一个新的、开源、跨平台的序列化工具:FlatBuffers。那就索性先了解了解这个工具把。 一. 什么是Goo
阅读全文
摘要:@[tools|flatbuffers|opensource] 概述### Google在今年6月份发布了跨平台序列化工具FlatBuffers,提供了C++/Java/Go/C#接口支持,这是一个注重性能和资源使用的序列化类库。相较于Protocol Buffers,其更适用于移动设备,FlatB
阅读全文
摘要:最近研究vc,windows的东西真是很傻瓜,啥都给你做好,有个好处就是开发方便了。 有个弊端就是完全按微软的一套进行,规则都是它定的,你得知道它的很多api, 开发出来的代码效率不高,不过却可以比较快的实现一些较好的功能,其实软件开发就应该这样 要不每个程序员都从0开始做起,那都停留在Hello层
阅读全文
摘要:https://wenku.baidu.com/view/ae3667fe0b1c59eef8c7b4bc.html
阅读全文