自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(65)
  • 资源 (10)
  • 收藏
  • 关注

原创 CMake将所有子目录添加构建

CMake构建自动构建子目录

2022-09-27 11:57:02 546

原创 GTEST死亡测试

gtest-death-test.cc:1122:: Death tests use fork(), which is unsafe particularly in a threaded context. For this test, Google Test detected 2 threads.

2022-06-21 19:06:58 552

原创 C++虚继承解决菱形继承的问题细节

#include <iostream>using namespace std;class A {public: A(int a) : a(a) { std::cout << "A construct: " << a << std::endl; } int a;};class B : virtual public A {public: B(int a) : A(a) { std...

2022-04-16 01:47:35 764

原创 IP地址uint32与string互换

#include <sys/socket.h>#include <netinet/in.h>#include <arpa/inet.h>uint32_t addr_ston(const char* host) { uint32_t iaddr = inet_addr(host); return htonl(iaddr);}char* addr_ntos(const uint32_t host) { uint32_t iaddr = .

2022-04-12 14:09:37 1899

原创 判断ip是否为multicast

#include <arpa/inet.h>#include <netinet/in.h>#include <sys/socket.h>#include <iostream>bool is_multicast(const std::string& addr) { uint32_t iaddr = inet_addr(addr.c_str()); uint32_t net_addr = htonl(iaddr); //.

2022-04-12 13:46:38 172

原创 git 查看本次提交所有变更的文件内容

使用git status查看所有的变更文件,再用git diff看每个文件的变更,较为麻烦,可以使用以下指令,一次性查看所有的文件变更:git status | grep modify | awk '{print $2}' | git diff

2022-01-27 20:54:31 1566

原创 希尔排序C++实现

网上关于希尔排序的文章很多,清一色的一顿理论分析然后给出一致错误的代码实现,让人非常怀疑人生。其实,这个算法的现实也就十来行,真的不明白哪来这么多的一致的错误实现。希尔排序的理论分析,我就不去复印粘贴了,大家自行检索,一大堆一大堆的。我只给出代码实现和必要的注释。void shell_sort(std::vector<int>& arr) { int j = 0; // 计算gep,也就是分组的次数,gep为1停止 for (int gep = arr.

2021-12-08 17:52:29 698

原创 RVO、NRVO和-fno-elide-constructors

若有时间再详细地解释一下,RVO和NRVO都做了什么,此文只说结论。一、RVO和NRVO优化后(NVO和NRVO是什么,自行google,此处不做解释),形如:Test func() { Test t; return t;}Test tt = func();只会调用一次构造函数。若想解除RVO和NRVO,编译时加上 -fno-elide-constructors 参数。若加上-fno-elide-constructors,函数调用顺序为:1、构造函数, func.

2021-10-14 20:34:08 281

原创 关于gcc 5.5.0关于宏展开的BUG

gcc版本:5.5.0vs版本:vs 2015如下宏定义代码#define LOGDEBUG(format, ...) fprintf(stdout, "DEBUG file:%s, line:%d, msg: " format"\n", __FILE__, __LINE__, ##__VA_ARGS__)//#define LOGDEBUG(format, args...) fprintf(stdout, "DEBUG file:%s, line:%d, msg: " format"\n"

2021-01-13 18:55:50 249

原创 时间定时器(TimeEvent) C++实现

注:Semaphore.h源码见https://mp.csdn.net/console/editor/html/103927034TimeEvent.h/** * desp: time event * auth: wangkui * date: 2020/01/09 */ #ifndef __TIMEEVENT_H__#define __TIMEEV

2020-07-31 14:22:34 1041

原创 C++实现信号

Signal.h/** * desp: * auth: wk * date: 2020/01/13 */#ifndef __SIGNAL_H__#define __SIGNAL_H__#include <mutex>#inc...

2020-01-13 11:02:56 400

原创 C++实现信号量

Semaphore.h/** * desp: * auth: wangkui * date: 2019/12/23 */#ifndef __SEMAPHORE_H__#define __SEMAPHORE_H__#include <...

2020-01-10 16:38:28 580

原创 大小端转换C++实现

#include <endian.h>class Endness {public: template<typename T16> static inline T16 swap16(const T16& v, BOOL desEndness) { if (!(__BYTE_ORDER == __LITTLE_ENDIAN ^ desEndness)...

2019-12-04 17:01:40 1816

原创 VS替换换行和制表符

相信许多小伙伴在使用VS时,都会将在.h文件中声明的接口,直接COPY到.CPP中,那么就有如下需求:将;号换成{ return;}只需打开查找,查找内容输入;,替换为输入\r\n{\r\n\treturn true;\r\n}\r\n\r\n,查找选项中将使用正则表达式勾,点击全部替换即可。如果函数较多,可以大大的提升工作效率,如下图实际效果图:点击全部替换后:...

2019-11-27 16:13:03 4641

原创 栈堆地址高低次序问题

结论:一、a地址大于b地址大于c地址验证栈是由高到低分配地址的(先进后出),c地址小于f地址小于e地址验证堆地址分配是无序的(先进先出)。二、无论堆或者栈,数组的内存的高低位都是由低到高的。原因即申请d[10]或者e时,是一次性申请的,而不是分十次申请的,这点不违反第一个结论。(这是我写此文的很重要的原因)直接上测试代码:int main(){ printf("*******...

2019-11-25 14:41:39 2513

原创 spring cloud 使用ElasticSearch(6.x升级7.x版本)实例

说明:这实例中的代码包含6.x和7.x版本,其中接口以6为后缀的为6.3.1版本,无6后缀的为7.2.0版本,spring boot版本为2.0.3。ES官方文档已经说明7摒弃了type的概念,此文档对需要将ES版本由6升至7的场景有一定的借鉴意义。另外,6和7的代码皆验证通过,ES的JAVA客户端API目前比较流行RestHighLevelClient。配置: //compi...

2019-08-19 20:02:46 3586

原创 ES及插件-环境搭建

以下仅为安装ES及插件需要注意的地方,主要用于避坑,想看详细教程的绕行吧。一、下载安装包,直接解压即可。二、不允许使用root用户启动,需要使用非root用户否则报错。三、配置文件(config/elasticsearch.yml),需有以几项,其中标红二项不配置的话,会影响ES插件的功能。cluster.name: my-applicationnode.name: node-1ne...

2019-07-31 15:49:01 226

原创 简记MYSQL调优--IN改为INEER JOIN ON

近期有一个关于排行榜的需求,有以下几点需求:一、排行榜只显示前500名二、同一用户发布多个文章,取点赞量最高的那个文章三、点赞数相同,先达到这个点赞数的前在前建表语句及表设计:CREATE TABLE `t_article_thumbup_cnt` ( `user_id` bigint(20) NOT NULL, `article_id` varchar(128) N...

2019-07-09 16:57:38 477

原创 LINUX能new最大空间是多少?

new最大空间大小 = 操作系统剩余内存大小 + 操作系统剩余交换分区大小 另外,在测试过程中发现以下问题是我之前没注意到的,或者说是没细想过的:1、单纯的new是不会实际占用内存空间的,只要等到真正的用到时才会占用内存空间。2、new申请的超出最大空间(剩余内存大小 + 剩余交换分区大小)后,才会报出异常且得到一个空指针。3、int64_t nSize = 1024 * 10...

2018-10-25 14:50:33 2469 1

原创 C++跨平台互斥锁实现

CMyLock.h#ifndef __CMYLOCK_H__#define __CMYLOCK_H__#ifndef _WIN32#include &lt;pthread.h&gt;#else#include &lt;windows.h&gt;#endifclass ILock{public: virtual ~ILock() {}; virtual void Lock(...

2018-04-24 18:10:23 871

原创 linux c删除超时文件包括空目录

bool DeleteTimeOutFile(const char* dir, int nSpanTime){ if (dir == nullptr || strlen(dir) &lt;= 0) return false; struct stat s; //lstat(dir, &amp;s); stat(dir, &amp;s); if (!S_ISDIR(s.st_mode))...

2018-03-08 17:29:01 462

原创 LINUX C++ 按修改时间清理过期文件函数实现

#define _IS_DIR_ 0x4#define _IS_FILE_ 0x8void DeleteFolder(const char* dir, int nSpanTime){ if (dir == nullptr || strlen(dir) <= 0) return; struct stat s; lstat(dir, &s); if ( !S_ISDIR(s.st_mo

2017-12-09 18:37:20 956

原创 linux c 创建多级目录接口实现

void casMkdir(const char* dir){ int nIndex = 1; char* tmp = (char*)dir; while ( nIndex < strlen(dir) + 1 ) { if (*(dir+nIndex) == '/' || *(dir+nIndex) == '\0') { char parent[256] = {0};

2017-10-30 14:04:54 1177

原创 linux c copyFile接口实现

LINUX本身并不提供拷贝文件的接口,于是自己实现了一个。int copyFile(const char* src, const char* des){ int nRet = 0; FILE* pSrc = NULL, *pDes = NULL; pSrc = fopen(src, "r"); pDes = fopen(des, "w+"); if (pSrc && pDes)

2017-10-30 14:00:23 3905

原创 C++互拆锁

CLock.h#ifndef __CLOCK_H__#define __CLOCK_H__#include class ILock {public: virtual ~ILock() {}; virtual void Lock() const = 0; virtual void UnLock() const = 0;};class CMutex : public

2017-10-12 10:01:36 391

原创 linux C++ Utf8toGb2312 Gb2312toUtf8 MyA2W和MyW2A实现

CHealper.h#ifndef __CHELPER_H__#define __CHELPER_H__#include int Utf8toGb2312(const char *sourcebuf, size_t sourcelen, char *destbuf, size_t* destlen);int Gb2312toUtf8(const char *sourcebuf, s

2017-09-01 09:25:03 788

原创 Linux C++ zookeeper创建临时节点类封装

至于zookeeper环境搭建和c++ client端的编译,此处就不再赘述了。直接上实现代码吧。主要功能:zookeeper创建临时节点,可用于判断程序是否存在。实现思想:实现CZkCreateEphemeralNode类,在构造函数中创建临时节点,析构函数中删除或者不删除都是可以的。那么,定义一个全局对象或者NEW一个对象即可。CZkCreateEphemeralNode.

2017-08-05 09:26:39 1091

原创 Linux 互斥锁

CLock.h#ifndef __CLOCK_H__#define __CLOCK_H__#include class ILock {public: virtual ~ILock() {}; virtual void Lock() const = 0; virtual void UnLock() const = 0;};class CMutex : public IL

2017-07-06 10:28:33 383

原创 C++ odac ado 报错

C++使用ADO连接ORACLE在WIN7下正常,在WIN10下异常,ADO的错误信息为:ADODB.Connection未找到提供程序,该程序可能未正确安装。原因详解:由于ODAC的install.bat会调用configure.bat,而configure.bat会注册OraOLEDB11.dll(regsvr32 /s "%BAT_DIR%bin\OraOLEDB11.d

2017-05-24 17:51:10 617

原创 mongodb C++ driver编译报错解决方案

错误信息:In file included from /usr/bin/mongo-cxx-driver-r3.1.1/src/bsoncxx/json.hpp:21:0,                 from /usr/bin/mongo-cxx-driver-r3.1.1/src/bsoncxx/document/element.cpp:24:/usr/bin/mongo-cx

2017-05-17 14:36:17 1201

原创 zookeeper客户端命令详解

zookeeper客户端命令详解简介查阅了网上相关资料,介绍zookeeper客户端命令并不是非常全面,大多数都是简单介绍ls、get、set、delete、stat这几个简单命令的,下面我把help中的所有命令简单介绍一下以供参考。首先说明一下如何打开zk服务端和客户端,cd到zk安装目录下,运行bin/zkServer.shstart即可启动服务端,运行bin/zkCli.sh –

2017-04-27 18:23:08 23132 3

原创 程序无法远程访问异地共享文件

WINDOWS在访问异地共享文件时,打开文件失败。在打开文件前添加以下代码,即可。注:此代码无需每次都执行,若机器未重装系统则只需执行一次即可(WINDOWS会保存访问的用户名和密码)。char buf[512] = {0};char path[256] = {0};char password[24] = {0};char username[24] = {0};sprintf_s(buf,

2017-03-29 17:38:29 740

原创 Visual Studio C1128错误解决方案

Visual Studio C1128错误信息:fatal error C1128: number of sections exceeded object file format limit : compile with /bigobj解决方案:属性-->C/C++-->Command Line-->其他选项 添加 /bigobj 选项。

2017-01-10 20:12:43 5448

原创 WINDOWS下BOOST库编译

1、 下载BOOST库官网下载地址:http://www.boost.org/users/download/2、 解压boost_1_60_0.zip3、 直接运行解压后的bootstrap.bat生成bjam.exe文件。4、 打开CMD,执行bjam.exe --toolset=msvc-10.0address-model=64 threading=multi --build-

2016-10-13 14:50:29 537

原创 自定义越轻量级C++异常类

/********************************************************************************.h*********************************************************************************/class CInterfaceException{pub

2016-08-26 19:58:39 475

原创 32位和64位C++程序使用ADO访问ORACLE注意事项和区别

32位:1、安装32位ORACLE客户端。2、在stdafx.h文件中增加:       #import "C:\Program Files (x86)\Common Files\System\ado\msado15.dll" no_namespace rename("EOF", "adoEOF")3、连接串为:        "Provider=MSDAORA.1;Passw

2016-08-17 18:38:33 3789

原创 剪贴板功能-C++实现

#include #include using namespace std;int main(){ HWND hWnd = NULL; OpenClipboard( hWnd );//打开剪切板 EmptyClipboard();//清空剪切板 HANDLE hHandle = GlobalAlloc(GMEM_FIXED, 1000);//分配内存 char* pData

2015-06-25 14:40:07 7651

原创 ORA-01405: 提取的列值为 NULL--报错原因及解决方案

此使用SEL

2014-10-29 18:24:02 15014

原创 PROC简单使用用例--VC连接ORACLE

操作系统:windows 7数据库版本:oracle 10gVS版本:VS2010前言:连接ORACLE的方式有很多,此处仅以PROC为例,说明如何连接oracle,有不妥之处,望诸位看官指出,学习共进。一、安装oracle 10g对应的客户端版本。  注意事项:做好客户配置,以本机为例:D:\oracle\product\10.2.0\client_2\NETWORK\A

2014-10-16 16:44:51 4907

原创 删除指定文件夹下小于指定大小的全部文件

void CdelsmallfileDlg::OnBnClickedButtonSetsize(){ // TODO: Add your control notification handler code here UpdateData(TRUE); std::string strTemp = m_strSize.GetBuffer(m_strSize.GetLength()); m_s

2014-10-09 14:26:50 3363

dds dcps文档

dds dcps文档

2021-01-29

omg rtps文档

omg rtps

2021-01-29

elasticsearch-head.zip

ES插件,亲测可用。由于官方下载ES安装包特别费劲,本来想传ES安装包的,无奈300M+的包超出了CSDN的限制。 就传个插件吧,省得大家可哪找了。

2019-07-31

C++ protobuf debug release动态库和静态库

VS2010及以上版本

2017-03-13

vs2015-protobuf

可以直接用VS2015打开protobuf-master\cmake\build\solution\protobuf.sln工程文件。

2017-03-02

vs2015编译MONGODB C/C++驱动

非常详细的WINDOWS下编译MONGODB C/C++驱动的文档,包含MONGODB数据库安装,CMAKE安装,PERL安装,BOOST库编译,OPENSSL库编译(ssleay32.dll、libeay32.dll),MONGODB C驱动(libbson-1.0.dll、libmongoc-1.0.dll),MONGODB C++驱动(mongocxx.dll、bsoncxx.dll)和示例代码。

2016-10-14

base64编解码C/C++实现

base64编解码C/C++实现。 .h和.cpp文件均已经上传,请直接调用压缩和解压缩方法即可,有需求的可私信我。

2016-07-03

学生管理系统

包括学生基本信息管理、学生选课信息管理、学生考试信息管理、学生惩罚信息管理、学生就业信息管理。 若有提示MFC100.DLL或者MFC100U.DLL等情况,请自行打微软补丁包。 需要源码的,可以私信我。

2016-07-03

talend中文版安装文档和数据抽取(ETL)实例

文件详尽地说明了talend 6.0版本的安装和ETL功能实例图文讲解。

2015-09-21

读写excel文件--libxl.dll

读写excel文件,包括libxl破解版和非破解版,完美测试通过。

2014-12-04

空空如也

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

TA关注的人

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