自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

pipilu的blog

凡事贵在坚持!

  • 博客(23)
  • 收藏
  • 关注

原创 RingBuffer

// PHZ// 2018-5-15#ifndef _RING_BUFFER_H#define _RING_BUFFER_H#include <vector>#include <memory>#include <atomic>#include <iostream>template <typename T>class RingBuffer{public: RingBuffer(unsigned capacity=.

2021-04-26 20:25:27 173

原创 一个很实用的的缓冲区队列

#ifndef _QUEUE_H#define _QUEUE_H#include <mutex>#include <queue>#include <condition_variable>template<typename T>class threadsafe_queue{public: threadsafe_queue() { } threadsafe_queue(threadsafe_q.

2021-04-26 20:13:38 311

原创 QMutex & QWaitCondition 小记!

用惯了Boost的mutex和Condition,突然发现QT的互斥锁与信号量跟Boost的这么神似! 所以今儿将QT的互斥与信号量做个小抄,方便后续查看!同时,记录一下先前对condition的使用一直比较模糊的地方顺便也做个笔记!// QThreadAndMutexLocker.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include

2017-12-21 23:09:17 1545

转载 C++设计模式-Bridge桥接模式

作用:将抽象部份与它的实现部份分离,使它们都可以独立地变化。将抽象(Abstraction)与实现(Implementation)分离,使得二者可以独立地变化。桥接模式号称设计模式中最难理解的模式之一,关键就是这个抽象和实现的分离非常让人奇怪,大部分人刚看到这个定义的时候都会认为实现就是继承自抽象,那怎么可能将他们分离呢。《大话设计模式》中就Bridge模式的解释:

2016-10-28 10:27:00 333

转载 这3个技巧,能帮你节省50%的工作和学习时间!

你的工作以“忙”著称吗?每天要打开三四十个标签页,在五六个Office之间切换,吃午饭时也要对着电脑,一天下来才发现自己一杯水都没喝? 在这种情况下,你一定急需各种方法来节约时间。今天要分享的,就是从实战中总结出来的:能确切可行节省工作和学习时间的一些小窍门。 (全文约2200字,阅读时间2分钟)  1、建立专属信息库 

2016-08-25 11:48:36 421

转载 WebService到底是什么?(转载一篇纯理论,但很清晰易懂的文章)

一、序言  大家或多或少都听过WebService(Web服务),有一段时间很多计算机期刊、书籍和网站都大肆的提及和宣传WebService技术,其中不乏很多吹嘘和做广告的成分。但是不得不承认的是WebService真的是一门新兴和有前途的技术,那么WebService到底是什么?何时应该用?   当前的应用程序开发逐步的呈现了两种迥然不同的倾向:一种是基于浏览器的瘦客户端应用程序

2016-08-22 14:52:43 312

原创 使用placement new来巧妙实现一个单例

一直对placement new的这种方式有点好奇,不知道存在这种方式的NEW有什么用,今天刚好在公司项目中见到用placement new方式来配合单例的实现的一个库,然后自己迅速写了一个小demo来模拟了一下这个实现,确实比较新颖!  直接看代码:头文件声明:/* * 思想:本类在使用过程中FOO通过单例的方式得到,但FOO类的构造和析构由它自己去负责,不需要使用者来处理!

2016-08-17 16:50:47 605

转载 秒杀多线程第三篇 原子操作 Interlocked系列函数

上一篇《多线程第一次亲密接触 CreateThread与_beginthreadex本质区别》中讲到一个多线程报数功能。为了描述方便和代码简洁起见,我们可以只输出最后的报数结果来观察程序是否运行出错。这也非常类似于统计一个网站每天有多少用户登录,每个用户登录用一个线程模拟,线程运行时会将一个表示计数的变量递增。程序在最后输出计数的值表示有今天多少个用户登录,如果这个值不等于我们启动的线程个数,那显

2016-04-28 16:42:01 292

转载 读书笔记——Windows核心编程(8)Interlocked单向链式栈

SLists使用了无锁算法来保证原子同步,以提升系统性能,避免了诸如优先级挂和互锁的问题。注意:所有的链表项必须对齐到MEMORY_ALLOCATION_ALIGNMENT。否则会出现奇葩的错误。(PS:看英文MSDN的API解释,我感觉这是从前插又从前取,是个栈的样子。)InitializeSListHead,创建一个空栈[cpp] vie

2016-03-31 14:17:55 441

原创 c++工程中发送http请求的示例

#include #include #include #include #include "Wininet.h" #pragma comment(lib,"Wininet.lib") extern std::string g_remotIp = "192.168.1.100";extern int g_remotPort = 8080;

2016-01-28 15:22:44 884

转载 Jsoncpp的使用

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。 易于人阅读和编写。同时也易于机器解析和生成。 它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括

2016-01-20 23:59:53 411

转载 gsoap使用心得!

gSOAP 是一个夸平台的,用于开发 Web Service 服务端和客户端的工具,在 Windows 、 Linux 、 MAC OS 和UNIX 下使用 C 和 C++ 语言编码,集合了 SSL 功能。下载地址: http://sourceforge.net/projects/gsoap2官方网站: http://genivia.com/Products/gsoap/index

2016-01-14 19:25:30 325

转载 Web Service学习笔记(webservice、soap、wsdl、jws详细分析)

Web Service概述 Web Service的定义 W3C组织对其的定义如下,它是一个软件系统,为了支持跨网络的机器间相互操作交互而设计。Web Service服务通常被定义为一组模块化的API,它们可以通过网络进行调用,来执行远程系统的请求服务。 这里我们从一个程序员的视角来观察web service。在传统的程序编码中,存在这各种的函数方法调用。通常,我们知道一个程序

2016-01-09 23:10:49 876

原创 Unicode与GB2312互转

#include #include #include int code_convert( bool uft2gbk, char *inbuf, int inlen, char *outbuf, int outlen ) { iconv_t cd; int rc; char **pin = &inbuf; char **pout = &outbuf;

2015-12-31 17:25:29 1993

转载 libssh2的简单应用

libssh2的官网:www.libssh2.org;虽然这个网站里面内容是全英文的,我想所有的计算机从事者都能看懂这里面写的内容,这里面提供了很多例子,比如FTP的,shell命令的等等,我在这里介绍一下shell命令的发送和接收返回数据。example里有个文件名叫exec.c 这个文件是实现shell命令的一个例子:* Sample showing how to use li

2015-12-24 16:29:01 2395 1

原创 getline函数使用总结

// getlineDemo.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #include #include #include /* * Note: 这里需要区分 getline和 std::cin.getline,是属不同的二个类中的函数,行参不一样,但功能是差不多的 一, getline(cin,st

2015-12-18 14:57:08 941

转载 FFmpeg深入分析之零-基础

FFmpeg是相当强大的多媒体编解码框架,在深入分析其源代码之前必须要有基本的多媒体基础知识,否则其源代码会非常晦涩难懂。本文将从介绍一些基本的多媒体只是,主要是为研读ffmpeg源代码做准备,比如一些编解码部分,只有真正了解了多媒体处理的基本流程,研读ffmpeg源代码才能事半功倍。下面分析一下多媒体中最基本最核心的视频解码过程,平常我们从网上下载一部电影或者一首歌曲,那么相应的多媒体播放器

2015-12-12 21:08:11 436

原创 VLD(Visual LeakDetector)内存泄露工具的使用

VLD(Visual Leak Detector)是一款用于VisualC++的免费内存泄漏检查工具。功能:    1)  可以得到内存泄漏点的调用堆栈,还可以得到其所在的文件及行号;    2)  可以得到泄漏内存的完整数据;    3)  恶意设置内存泄漏报告的级别;    4)  它以动态库的形式提供,无需编译源代码,只需要很小的改动程序;    5)  源代码使用GNU

2015-12-03 17:12:35 1123

转载 UML类图几种关系的总结

在UML类图中,常见的有以下几种关系:泛化(Generalization),  实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency) 1.泛化(Generalization)【泛化关系】:是一种继承关系,它指定了子类如何特化父类的所有特征和行为例如:老虎是动物的一种.【箭头指向】

2015-11-26 14:38:01 307

原创 拷贝构造、赋值构造、深拷贝、浅拷贝、位拷贝、值拷贝

很早之前,一直对这些名词很不解,翻看了c++ primer很多次,也只知道其用法,不知其解。说白了,就是不知道为什么有这些各式的拷贝的存在,或者是说在何种环境下面要使用得上!今天无意翻到当初写的小例子,重新整理后帖上来作个记号! //=================================一,在什么环境下面可能需要使用自定义拷贝、赋值构造?  在解释这些名词之前,需要

2015-11-26 14:21:37 508

翻译 一个超实用的图片加载和显示的小工具PictureEx!

众所周知VC工程中显示BMP格式图片很容易处理,但对GIF、JPEG、ICO、PNG等图片的显示处理却很繁琐。PictureEx是一款超实用的图片显示和简单处理的小插件,极易使用。【HPP头文件:】//////////////////////////////////////////////////////////////////////// PictureEx.cpp: impl

2015-11-07 21:31:57 1515

转载 收藏一个Ping的小工具类,可用于网络中检测目的设备是否在线

记不起在哪个项目中需要做一个检查设备在线状态的功能,可当时又没有设备的SDK可使用,网上找索很久,找到这款PING的小工具,简单适用,自己修改了一下,用起来超方便。 自己先攒起来再说。 [头文件]#ifndef _PINGTOOL_H#define _PINGTOOL_H#include #include #pragma comment( lib, "ws2_32.li

2015-10-31 13:52:15 1253

原创 ffmpeg如何从内存读取h264音视频流进行解码显示

由于项目组重组,自己有幸开始做音视频编解码方面的研发工作,现将自己近期的工作收获作为BOLG的方式记录起来,方便自己日后查阅和学习。说到H264编解码,不能不提到ffmpeg,据自己查证的资料显示,现大部分软件的H264编解码基本都是使用ffmpeg作为自己的三方库工具,关于ffmpeg有多牛,这里不作赘述。按照之前查阅的资料,ffmpeg可以解码rtp网络流、从内存读取数据流来解码、读取文件

2015-10-23 17:38:54 7421 1

空空如也

空空如也

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

TA关注的人

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