![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
文章平均质量分 57
heihei36
这个作者很懒,什么都没留下…
展开
-
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 · 419 阅读 · 0 评论 -
C++实现信号量
Semaphore.h/** * desp: * auth: wangkui * date: 2019/12/23 */#ifndef __SEMAPHORE_H__#define __SEMAPHORE_H__#include <...原创 2020-01-10 16:38:28 · 596 阅读 · 0 评论 -
大小端转换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 · 1880 阅读 · 0 评论 -
VS替换换行和制表符
相信许多小伙伴在使用VS时,都会将在.h文件中声明的接口,直接COPY到.CPP中,那么就有如下需求:将;号换成{ return;}只需打开查找,查找内容输入;,替换为输入\r\n{\r\n\treturn true;\r\n}\r\n\r\n,查找选项中将使用正则表达式勾,点击全部替换即可。如果函数较多,可以大大的提升工作效率,如下图实际效果图:点击全部替换后:...原创 2019-11-27 16:13:03 · 4747 阅读 · 0 评论 -
栈堆地址高低次序问题
结论:一、a地址大于b地址大于c地址验证栈是由高到低分配地址的(先进后出),c地址小于f地址小于e地址验证堆地址分配是无序的(先进先出)。二、无论堆或者栈,数组的内存的高低位都是由低到高的。原因即申请d[10]或者e时,是一次性申请的,而不是分十次申请的,这点不违反第一个结论。(这是我写此文的很重要的原因)直接上测试代码:int main(){ printf("*******...原创 2019-11-25 14:41:39 · 2636 阅读 · 0 评论 -
C++跨平台互斥锁实现
CMyLock.h#ifndef __CMYLOCK_H__#define __CMYLOCK_H__#ifndef _WIN32#include <pthread.h>#else#include <windows.h>#endifclass ILock{public: virtual ~ILock() {}; virtual void Lock(...原创 2018-04-24 18:10:23 · 909 阅读 · 0 评论 -
linux c删除超时文件包括空目录
bool DeleteTimeOutFile(const char* dir, int nSpanTime){ if (dir == nullptr || strlen(dir) <= 0) return false; struct stat s; //lstat(dir, &s); stat(dir, &s); if (!S_ISDIR(s.st_mode))...原创 2018-03-08 17:29:01 · 480 阅读 · 0 评论 -
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 · 973 阅读 · 0 评论 -
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 · 405 阅读 · 0 评论 -
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 · 398 阅读 · 0 评论 -
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 · 1239 阅读 · 0 评论 -
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 · 641 阅读 · 0 评论 -
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 · 559 阅读 · 0 评论 -
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 · 3825 阅读 · 0 评论 -
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 · 4948 阅读 · 0 评论