![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++
xian_wwq
程序员
展开
-
【转】11个代码质量审核和管理工具
11个代码质量审核和管理工具如今,代码质量分析和审核已成为每个企业的基本流程。随着开源代码库使用的增加,安全性和代码质量对于构建高质量软件至关重要。不良的代码不仅会影响代码的可维护性,而且还会在某些情况下影响其性能。此外,更好的代码质量还有助于企业将来减少维护和降低成本。幸运的是,有很多审核和管理代码的工具,为开发者和程序员提供了发现代码问题的解决方案。1.SonarQubeSon...转载 2020-02-15 12:37:45 · 303 阅读 · 0 评论 -
[转]浅析Windows安全相关的一些概念
http://www.cppblog.com/weiym/archive/2013/08/25/202751.html?opt=admin浅析Windows安全相关的一些概念Session我们平常所说的Session是指一次终端登录, 这里的终端登录是指要有自己的显示器和鼠标键盘等, 它包括本地登录和远程登录。在XP时代每次终端登录才会创建一个Session,但是在转载 2017-03-28 08:44:33 · 523 阅读 · 0 评论 -
[转]char* CString LPCWSTR等类型转换解决方案
http://blog.csdn.net/zhouxuguang236/article/details/8761497在Windows编程中,经常会碰到字符串之间的转换,char*转LPCWSTR也是其中一个比较常见的转换。下面就列出几种比较常用的转换方法。1、通过MultiByteToWideChar函数转换 MultiByteToWideChar函数是将多字节转换为宽字节的一...转载 2017-03-27 17:10:40 · 3294 阅读 · 0 评论 -
[转]Run-Time Check Failure #2分析
原文:http://blog.sina.com.cn/s/blog_616ac4f00100ym8r.htmlRun-Time Check Failure #2 一般是栈被破坏,代码可能有缓冲区溢出一类的问题。Run-Time Check Failure #2 - Stack around the variable 's' was corruptedThi转载 2017-05-19 10:30:40 · 2024 阅读 · 0 评论 -
[转]提示microsoft incremental linker已停止工作解决方法
原文地址:http://www.cnblogs.com/gameking/archive/2012/02/11/2346814.html这个是因为你的设置有问题。解决方法如下:解决方案一:项目->属性->链接器->常规 下面的“启用增量链接”,将“是(/INCREMENTAL)”改为“否(/INCREMENTAL:NO)”。不过这又引入了另外一个警 告:Fo转载 2014-02-14 14:36:50 · 1093 阅读 · 0 评论 -
[转]VS2015编译ForestDB
原文地址:http://www.cnblogs.com/oloroso/p/6305615.htmlForestDB 是一个快速的 Key-Value 存储引擎,基于层次B +树单词查找树。由 Couchbase 缓存和存储团队开发。1、下载forestdb源码git clone https://github.com/couchbase/forestdb.git转载 2017-12-13 09:16:41 · 301 阅读 · 0 评论 -
[转]windows下实现微秒级的延时
原文地址:http://blog.csdn.net/lhsxsh/article/details/41513931.微秒级的延时肯定不能基于消息(SetTimer函数),因为一出现消息堵塞等就会影响精度,而且setTimer单位才是毫秒.实际响应时间可能要到55毫秒左右.2.微秒级的延时也不能基于中断,VxD最快的时钟服务程序Set_Global_Time_Out函数才能保证1毫秒的精...转载 2017-12-22 09:39:56 · 4785 阅读 · 0 评论 -
std::vector使用简介
使用vector,需添加头文件#include<vector>, 要使用sort或find,则需要添加头文件#include<algorithm>。 为了简化书写,需在.h中增加using namespace std; 1.vector的初始化及赋值 std::vector<int> nVec; // 空对象 ...原创 2018-06-08 10:07:05 · 145057 阅读 · 0 评论 -
内存映射文件 错误码(1132、5)
1.问题描述:调用MapViewOfFile时,发现有时返回数据为NULL,通过GetLastError()显示错误为1132。经确认: 1132 --- 指定的基址或文件偏移量没有适当对齐检查调用参数,发现在MapViewOfFile时,必须保证dwFileOffsetHigh和dwFileOffsetLow合成的偏移量必须是64K的倍数。如果所要读取的位置不是倍数,则将offset取...原创 2018-07-23 14:15:26 · 5602 阅读 · 0 评论 -
[转]关于VS2013下inet_ntoa函数不能使用的问题
https://blog.csdn.net/Zxiuqi/article/details/49888727 发现在VS2013,64位的Windows系统中不能再使用老旧函数inet_addr(),inet_ntoa()等了。。例如使用inet_ntoa()时,会报如下错误提示:错误 1 error C4996: 'inet_ntoa': Use inet_ntop() or In...转载 2018-08-03 16:54:43 · 1216 阅读 · 0 评论 -
[转]VS2013编译生成nanomsg库文件
https://blog.csdn.net/onlyshi/article/details/70173036编译准备,CMake工具软件和下载好的nanomsg源码包。我的是CMake 3.6.2,nanomsg是1.0.0版本。 解压你的nanomsg。打开CMake,添加源码目录,和编译构建目录 添加编译环境 默认是生成动态库,但如果要生成静态库,就勾选静态库选项...转载 2018-08-03 17:13:53 · 582 阅读 · 2 评论 -
[转]Visual Studio 2015下编译zmq项目下其他项目踩进的项目引用坑
https://www.cnblogs.com/MrOuqs/p/5812040.htmlPS.在之前的一篇文章中介绍了如何用Visual Studio 2015编译zmq,在编译同解决方案中除了libzmq之外的项目例如inproc_thr时会报错误,具如下: 1 2 Severity Code Description Project Fi...转载 2018-08-02 15:30:35 · 650 阅读 · 0 评论 -
[转]开源软件架构-ZeroMQ
原文链接:http://www.aosabook.org/en/zeromq.htmlØMQ是一个消息通信系统,如果你愿意的话也可以称其为“面向消息的中间件”。ØMQ的应用环境很广泛,包括金融服务、游戏开发、嵌入式系统、学术研究以及航空航天等领域。消息通信系统完成的工作基本上可看作为负责应用程序之间的即时消息通信。一个应用程序决定发送一个事件给另一个应用程序(或者多个应用程序),它将需要发...转载 2018-08-16 17:03:13 · 696 阅读 · 0 评论 -
[转]zeromq源码分析笔记之架构(1)
原文:https://www.cnblogs.com/zengzy/p/5122634.html1、zmq概述ZeroMQ是一种基于消息队列的多线程网络库,其对套接字类型、连接处理、帧、甚至路由的底层细节进行抽象,提供跨越多种传输协议的套接字。引用云风的话来说:ZeroMQ 并不是一个对 socket 的封装,不能用它去实现已有的网络协议。它有自己的模式,不同于更底层的点对点通讯模式。它有...转载 2018-08-16 17:22:31 · 299 阅读 · 0 评论 -
[转]zeromq源码分析笔记之线程间收发命令(2)
在zeromq源码分析笔记之架构说到了zmq的整体架构,可以看到线程间通信包括两类,一类是用于收发命令,告知对象该调用什么方法去做什么事情,命令的结构由command_t结构体确定;另一类是socket_base_t实例与session的消息通信,消息的结构由msg_t确定。命令的发送与存储是通过mailbox_t实现的,消息的发送和存储是通过pipe_t实现的,这两个结构都会详细说到,今天先说一...转载 2018-08-16 17:23:30 · 263 阅读 · 0 评论 -
[转]zeromq源码分析笔记之无锁队列ypipe_t(3)
在上一篇中说到了mailbox_t的底层实际上使用了管道ypipe_t来存储命令。而ypipe_t实质上是一个无锁队列,其底层使用了yqueue_t队列,ypipe_t是对yueue_t的再包装,所以我们先来看看yqueue_t是怎么实现的。1、yqueue_tyqueue_t是一个高效的队列,高效体现在她的内存配置上,尽量少的申请内存,尽量重用将要释放的内存。其实,容器的设计都会涉及这点...转载 2018-08-16 17:24:46 · 311 阅读 · 0 评论 -
[转]深入浅出入侵式容器
https://blog.csdn.net/weixin_42663840/article/details/81188003 在说入侵式容器前,先说一说什么是容器,本文提到的容器与docker一点关系都没有,是C++标准库中std::map、std::set、std::list等用来存放数据对象的这些类。在C++中,采用模板实现容器内对象的分类,也就是说通过模板实例化出具体类型对象...转载 2018-09-04 10:05:45 · 788 阅读 · 0 评论 -
[译]nanomsg和ZeroMQ的区别
原文地址: https://nanomsg.org/documentation-zeromq.html 自这篇文档完成以后,Nanomsg和ZeroMQ都已经发生了很大的变化。尽管如此,本文档从ZeroMQ和Nanomsg原创作者的角度来阐述,仍有助于理解nanomsg的历史变更。 授权 Nanomsg库基于MIT授权,这就意味着Nano...翻译 2018-09-14 14:01:43 · 14993 阅读 · 4 评论 -
[转]C语言变长数组 struct中char data[0]的用法
原文:http://www.xuebuyuan.com/1731866.html摘要:在实际的编程中,我们经常需要使用变长数组,但是C语言并不支持变长的数组。此时,我们可以使用结构体的方法实现C语言变长数组。struct MyData { int nLen; char data[0];}; PS:必须将指针定义在struct的末尾,指针的类型也可以不转载 2017-02-08 15:58:11 · 534 阅读 · 0 评论 -
[集合]c/c++常见编译错误
原文地址:http://blog.csdn.net/angle635/article/details/22035427前面在学习使用google的protobuf时在VS2012中一直无法编译编译通过,经过查找一些资料原来发现,并不是protobuf的问题,而是自己在使用VS2012时,没有完全了解VS2012的强大功能,和跟以前VS2010的差别,导致无法编译通过。现转载 2015-08-03 09:44:04 · 4622 阅读 · 0 评论 -
[转]Windows上64位编程
C/C++仅仅定义了这些基本数据类型之间的关系,并没有定义严格定义它们的字长。在不同的平台上,根据编译器不同的实现,它们的字长不同。转载 2014-09-16 16:32:37 · 929 阅读 · 0 评论 -
[转]C++智能指针(auto_ptr)详解
[转]智能指针(auto_ptr) 这个名字听起来很酷是不是?其实auto_ptr 只是C++标准库提供的一个类模板,它与传统的new/delete控制内存相比有一定优势,但也有其局限。本文总结的8个问题足以涵盖auto_ptr的大部分内容。1. auto_ptr是什么?auto_ptr 是C++标准库提供的类模板,auto_ptr对象通过初始化指向由new创建的动态内存,它是这块内存转载 2013-12-25 15:22:04 · 752 阅读 · 0 评论 -
[转]30分钟了解C++11新特性
原文链接:http://my.oschina.net/wangxuanyihaha/blog/183151转载 2014-07-16 09:38:13 · 597 阅读 · 0 评论 -
[转]C++拷贝构造函数详解
一. 什么是拷贝构造函数首先对于普通类型的对象来说,它们之间的复制是很简单的,例如:[c-sharp] view plaincopyint a = 100; int b = a; 而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量。下面看一个类对象拷贝的简单例子。转载 2014-06-30 08:54:58 · 473 阅读 · 0 评论 -
[转][c++0x/c++11] lambda 表达式
原文地址:http://blog.csdn.net/saga1979/article/details/7212639转载 2014-06-17 11:28:25 · 934 阅读 · 0 评论 -
[转]套接字选项
原文地址:http://blog.csdn.net/luozenghui529480823/article/details/13511235转载 2014-08-14 08:53:51 · 983 阅读 · 0 评论 -
[转] 关于VS中区分debug与release,32位与64位编译的宏定义
在vs编程中,常常涉及到32位和64位程序的编译,怎么判断当前编译是32位编译还是64位编译?如何判断是debug下编译还是release下编译?因为之前用到,这里记录一下,省的忘了又要疯狂的google。1.判断是debug编译还是release编译。如果_DEBUG定义了表示是debug编译,否则是release编译。2.判断是32位编译转载 2014-09-25 09:04:33 · 1259 阅读 · 0 评论 -
使用Windbg分析程序死锁小结
死锁场景描述: 针对之前一个版本反馈回来的问题,对数据通讯模块升级,做了精简和重构 因为ABA问题的存在,将之前以Socket为key改为以只增的Int为key。使用的锁为临界区锁。 修改完成,联调后进行压力测试,发现当后台的线程池满的时候会必然发生死锁。死锁定位过程 第一步:精简线程模型,将授权检测线程、超时检测等辅助线程通通原创 2014-12-02 09:04:17 · 4425 阅读 · 0 评论 -
vs2008 32位应用迁移到64位
一. vs2008必须安装64位编译器二.问题1:按照项目(菜单中)->配置管理器->活动解决方案平台中 将win32改为X64,结果在下面的项目上下文框中只有2个项目变为X64,其他的手工设置也不行,出现 “未能创建此平台,因为已存在同名的解决方案平台”提示。解决方案:VS2008只能按项目配置,而解决方案只需要创建一个,其它各个项目的配置里,下图的选择框只需要勾一次,否则会重复,提原创 2015-03-27 11:32:56 · 2872 阅读 · 0 评论 -
[转] __int64 与long long 的区别
//为了和DSP兼容,TSint64和TUint64设置成TSint40和TUint40一样的数 //结果VC中还是认为是32位的,显然不合适 //typedef signed long int TSint64; //typedef unsigned long int TUint64; //ANSI C中规定long long才能表示64位 //参转载 2015-04-02 14:47:51 · 1027 阅读 · 0 评论 -
[转]c++中的类型及运算
原文地址:http://www.cnblogs.com/qianyuming/archive/2012/04/12/2443429.html 某些C/C++书籍教会了我们几十年前流行的写法,浑然不知的我们理所当然的写出这些代码,然后把当年造就了无数漏洞的恶魔重新放入新的体系里。在理想情况下,对类型的错误应用会导致一些错误,并让我们第一时间发觉;在最糟的情况下,其错误转载 2015-05-22 09:35:51 · 718 阅读 · 0 评论 -
[转]vs2013编译使用Lualib
原文地址:http://blog.csdn.net/skillart/article/details/433710071.下载lua源码2.在VS2013中新建一个静态库项目,项目命名为lualib a. 选择新建 Win32 console project b. 在wizard界面选择 static Library;不选择Precomplied H转载 2015-07-06 14:49:14 · 862 阅读 · 0 评论 -
[转]select、poll、epoll的比较
http://my.chinaunix.net/space.php?uid=20196318&do=blog&id=366042http://blog.endlesscode.com/2010/03/27/select-poll-epoll-intro/linux提供了select、poll、epoll接口来实现IO复用,三者的原型如下所示,本文从参数、实现、性能等转载 2014-11-26 10:19:27 · 760 阅读 · 0 评论 -
[转]C++ - 网络编程模型 - Linux EPOLL
1.简介 Linux I/O多路复用技术在比较多的TCP网络服务器中有使用,即比较多的用到select函数。Linux 2.6内核中有提高网络I/O性能的新方法,即epoll 。 epoll是什么?按照man手册的说法是为处理大批量句柄而作了改进的poll。要使用epoll只需要以下的三个系统函数调用: epoll_create(2),epoll_ctl(2),epoll_wait(2)转载 2014-11-14 09:22:27 · 773 阅读 · 0 评论 -
[转]c++ 中__declspec 的用法
语法说明:__declspec ( extended-decl-modifier-seq )扩展修饰符:1:align(#) 用__declspec(align(#))精确控制用户自定数据的对齐方式 ,#是对齐值。e.g__declspec(align(32)) struct Str1{int a, b, c, d, e;};转载 2016-05-20 16:43:04 · 412 阅读 · 0 评论 -
[转]高效Hash构建方法
原文地址:http://blog.csdn.net/wwwsq/article/details/1526595不约而同的,几乎所有的流行的hash map都采用了DJB hash function,俗称“Times33”算法。Perl、Berkeley DB 、Apache、MFC、STL 等等。times33的算法也很简单,就是不断的乘33。nHash = nHash转载 2016-06-06 16:44:58 · 1115 阅读 · 0 评论 -
[转]C++回顾之static与单例模式
http://blog.csdn.net/ab198604/article/details/19196315单例模式是应用最多的一种设计模式,它要求每个类有且只能有一个实例对象,所以用C++设计一个单例模式的方法如下: 1 构造函数声明为私有; 这样就保证了不能随意构造一个对象 2 将拷贝构造函数与等号运算符声明为私有,并转载 2016-09-23 15:03:09 · 419 阅读 · 0 评论 -
[转]关于__FILE__预编译器常量
C++ static char THIS_FILE[] = __FILE__;__FILE__为预编译器常量,返回当前编译的文件名,还有比较常用的几个预编译器常量,__LINE__编译器在编译的文件的第几行;__DATE__返回当前的日期Jul-20-2004;__TIME__返回当前的时间hh:mm:ss; __TIMESTAMP__ 的预定义的编译器宏始终返回时间戳信转载 2014-01-17 17:03:16 · 1176 阅读 · 0 评论