- 博客(22)
- 资源 (62)
- 收藏
- 关注
原创 C++内存池的实现
1、这是一个C++编写的内存管理器,下载地址:https://github.com/mrYiXuYang/memory-manager我们主要学习他的思想,不应该拿来直接用!因为我认为他里面还存在一些小问题(作者很强、不可否认):(1)Vector的实现还有一些问题;(2)里面的锁我认为不太好;(3)代码中223~232我认为还有一些问题。(4)安全指针我认为保证了安全,降低了...
2020-02-27 14:55:33 357
原创 带锁vector的封装
#pragma once#include <mutex>namespace zzcVector{ //初始化分配内存数量const int DEFAULT_INIT_LEN = 10; //当内存不足时,每次分配的内存数量const int DEFAULT_ADD_LEN = 10; template<class T> class Vector {...
2020-02-26 15:05:20 821
原创 C++ 无锁队列
1、老外写的一个无锁队列,适用于单生产者和单消费者的情况。我们可以使用,避免重复造轮子。下载地址:https://github.com/cameron314/readerwriterqueue2、简单的测试:// NO_LOCK_QUEUE_TEST.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。//#include <iostream>...
2020-02-25 16:38:34 1035
原创 C++ 11 实现线程池---老外封装
源码下载地址:https://github.com/log4cplus/ThreadPool// -*- C++ -*-// Copyright (c) 2012-2015 Jakob Progsch//// This software is provided 'as-is', without any express or implied// warranty. In no even...
2020-02-24 21:10:53 1193
原创 Log4cplus分文件输出日志
1、看了一些人的做法是创建一个单例类,然后将程序的所有日志都输出在一个文件里面。其实有的时候我们在记录日志的时候,并不想让程序的所有日志都记录在一个文件下,而是分模块,一个模块的日志记录到一个文件下面。下面我简单实现了一下:2、(1)urconfig.properties配置文件如下:#rootLogger没有用到log4cplus.rootLogger=DEBUG,ALL_MSG...
2020-02-24 00:40:41 1604
转载 Log4cplus使用详解
http://my.oschina.net/lovecxx/blog/185951目录[-]1. Log4cplus简介2. 安装方法2.1. &nbs...
2020-02-24 00:11:04 6497 4
原创 Windows下Log4cplus环境的配置
1、下载Log4cplus库,下载地址:https://sourceforge.net/projects/log4cplus/files/log4cplus-stable/ 我下载的版本是 2.0.5,使用环境是VS2017。2、配置:(1)进入到 log4cplus-2.0.5\msvc14目录下,运行log4cplus.sln解决方案。(2) 编译log4cplus工...
2020-02-24 00:01:05 1292
原创 Windows下C++基于protobuf库自定义协议通信
1、采用protobuf库,发送端进行序列化操作,接收端进行反序列化操作。2、发送端对序列化后的数据进行封包操作,先发送包头,再发送包体;接收端先接收包头,解析出包体的长度,再接收包体,然后对包体数据进行反序列化操作,解析出原始数据。3、程序采用简单的阻塞式通信方式,主要为了验证协议的正确性。CMsgHandler类时自己封装的封包类。4、代码:#pragma once#inc...
2020-02-22 15:20:21 1587
原创 VS2017中网络编程accept()函数不阻塞的原因
1、问题:Vs2017中进行网络编程,accept()函数突然不阻塞了,在没有连接的情况下可以继续往下执行。2、原因:bind()函数没有绑定成功。原因是VS2017中的也就是c++ 11 中的bind()模板函数与socket中的bind函数有冲突了,我们实际调用的是C++ 11 中的bind()函数。3、解决:将bind()形式添加作用域操作符 ::,改成::bind()形式即可。或者...
2020-02-22 00:26:38 985
原创 MFC程序中使用protobuf注意点
我的环境window7 + VS20171、不使用预编译头!2、编译库的时候,可以选择编译成32位版本或是64位版本,我选择编译的64位版本。(1)protobuf_BUILD_SHARED_LIBS选上会编译成动态库,不勾选会编译成静态库,两种都是可以的。(2)protobuf_MSVC_STATIC_RUNTIME勾选上的话,需对VS2017进行如下设置:(3...
2020-02-21 02:02:28 786
原创 protobuf-使用protobuf的反射来生成Message并赋值
1、测试用例:syntax = "proto2";package dong;message PersonInfo{ required string name = 1; required uint32 age = 2; required uint32 phone_num = 3;}message Person{ repeated PersonInfo people = 1;...
2020-02-19 17:45:06 3246
原创 probobuf---实现对文件的读写操作
1、proto文件还是使用上节中的文件,结构比较简单:syntax = "proto2";package dong;message PersonInfo{ required string name = 1; required uint32 age = 2; required uint32 phone_num = 3;}message Person{ repeated Pe...
2020-02-18 22:51:43 274
原创 Windows 7+ Vs2017下protobuf的安装和配置详解
1、下载protobuf和CMake工具:(1)下载protobuf:https://github.com/protocolbuffers/protobuf/releases(2)、下载CMake工具:https://cmake.org/download/2、安装CMake进行编译:安装过程省略。编译过程:(1)将下载的protobuf解压,我的解压目录:D:\prot...
2020-02-18 15:14:43 769 3
原创 QT-使用QLocalServer和QLocalSocket进程间通信
1、例子包含一个客户端和服务端,以及一个动态链接库。动态链接库集成了服务端和客户端功能,当服务端加载动态链接库时会加载服务器功能,当客户端加载动态链接库时时会加载客户端功能。...
2020-02-18 11:25:38 1261 2
原创 QT-动态链接库动态加载和静态加载方法详解
1、先说明本文要实现的功能:(1)生成一个动态链接库;(2)隐式加载动态链接库,需要的文件:*.h(非必须文件,如果不使用*.h文件,那么调用程序所需要的函数或是类就需要自己声明,所以说建议直接使用动态链接库的*.h文件。如果使用别人的动态链接库没有*.h文件那只有自己在调用程序中声明了);*.dll文件(必须有);*.lib文件(必须有)。(3)使用QLibrary()动态加载,*....
2020-02-16 18:02:19 7678
原创 QT使用共享内存
1、一个进程创建共享内存之后,其它进程可以访问共享内存,也就是多个进程都可以访问共享内存,可以实现进程间通信。2、如果想多个进程都可访问共享内存,就必须访问共享内存的进程都设置相同的密匙setkey()。3、一个进程创建( create()函数 )共享内存之后,当前进程自动和共享内存attach了,不用调用attach()函数;其它进程要想访问共享内存,要先调用attach()函数。4、...
2020-02-15 22:51:04 3863 3
原创 将QT项目打包成一个单独*.exe程序
1、第一步搜寻当前exe所使用的到的一些库文件: 比如我编写的程序名称是zzc.exe,将其单独放到D://dabao文件夹内。 打开QT下的黑框体:在黑框体中输入如下命令,按回车即可:2、下载:Engima Virtual Box工具,并使用此工具进行打包: 下载地址:https://enigmaprotector.com/en/download...
2020-02-14 23:00:39 756
原创 QRunnable与QThreadPoor多线程
1、#ifndef WORKTHREAD_H#define WORKTHREAD_H#include <QObject>#include <QRunnable>class WorkThread : public QRunnable{public: WorkThread(); ~WorkThread(); void run();...
2020-02-14 21:03:59 279
原创 QThread实现TCP通信的多线程实例
1、QTCreater4.10.12、1、主函数:#include <QCoreApplication>#include<server.h>int main(int argc, char *argv[]){ QCoreApplication a(argc, argv); //开启服务 server s; s.start...
2020-02-14 15:44:41 1013
原创 使用QtConcurrent创建多线程
一、相关配置:Qt += concurrent 、#include <QtConcurrent>二、下面实例分为3部分:1多线程写文件;2、线程池中的多线程;3线程同步#include "widget.h"#include <QApplication>#include <QtConcurrent>#include <QSet>...
2020-02-14 12:30:22 496
QLocalServer_QLocalSocket.rar
2020-02-18
opencv2.4.4库(.h/.lib/.dll)
2019-02-22
qt基于libev的多线程服务端
2018-10-31
Vs2010 + QT4.8.6 安装文件及配置详解
2018-04-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人