自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 收藏
  • 关注

原创 C++进程间通信---自定义消息

在windows中消息分为两种,即系统消息和用户自定义消息,系统消息定义从0到0x3ff,可以使用0x400到0x7fff定义自己的消息。windows把0x400定义为WM_USER,如果想定义自己的一个消息,可以在WM_USER上加上一个值。当然了,还有另外一种方法,这里就不讲了,而是使用RegisterWindowsMessage()函数。 要想用消息实现进程间通信,则需要在这两个程序中定义

2016-12-16 15:19:41 3216

转载 C++ 内核对象

转自http://www.cnblogs.com/Adon/archive/2009/10/11/1580784.html 1. 内核对象概述内核对象是操作系统的基础,系统内部的内核对象有:令牌(token)、事件(event)、文件(file)、文件映射(file-mapping), I/O完成端口(I/O completion port), 作业(job), 邮件mailslot, mutex

2016-11-29 16:53:30 786

转载 C++互斥锁 临界区 信号量 事件的区别总结

转自http://blog.csdn.net/anddy926/article/details/7828173四种进程或线程同步互斥的控制方法 1、临界区CriticalSection: 通过对多线程的串行化来访问公共资源或一段代码,速度快,适合控制数据访问。 2、互斥量Mutex: 为协调共同对一个共享资源的单独访问而设计的。 3、信号量Semaphore: 为控制一个具有有限数量用户资

2016-11-29 16:43:27 2626

原创 C++多线程同步之事件(Event)

一、事件(Event)原理解析线程同步Event,主要用于线程间的等待通知。 内核对象中,事件内核对象是个最基本的对象。 事件包含一个使用计数(与所有内核对象一样),一个用于指明该事件是个自动重置的事件还是人工重置的事件的布尔值,另一个用于指明该事件处于已通知状态还是未通知状态的布尔值。事件能够通知一个操作已经完成。 有两种不同类型的事件对象。一种是人工重置的事件,另一种是自动重置的事件

2016-11-29 12:02:53 3282

原创 C++多线程同步之临界区(CriticalSection)

一、Win32平台1、相关头文件和接口#include <windows.h>CRITICAL_SECTION cs;//定义临界区对象InitializeCriticalSection(&cs);//初始化临界区EnterCriticalSection(&cs);//进入临界区LeaveCriticalSection(&cs);//离开临界区DeleteCriticalSection(&c

2016-11-21 19:47:45 2604

转载 C++函数指针

本文转自http://www.cnblogs.com/iuices/archive/2011/11/21/2257710.html要理解一个C程序,仅仅理解组成该程序的符号是不够的。程序员还必须理解这些符号是如何组合成声明、表达式、语句和程序的。 我们先来看看下面的一个语句:( *( void(*)())0)();这是当计算机启动时,硬件将调用首地址为0位置的子例程。像这样的表达式恐怕会令每个C

2016-11-18 15:02:35 363

转载 C++ 虚函数

本文转自http://blog.csdn.net/haoel/article/details/1948051/本篇博文转自大牛陈皓的博客,是目前看到的对C++虚函数讲解比较详细的文章之一,所以转载一下学习学习。 另外还有两篇也写的很好,可以参考学习: http://www.cnblogs.com/jerry19880126/p/3616999.htmlhttp://www.cnblogs.com

2016-11-17 19:55:54 368

原创 C++多线程同步之Mutex(互斥量)

一、互斥量Mutex同步多线程1、Win32平台相关函数和头文件#include <windows.h>HANDLE CreateMutex(LPSECURITY_ATTRIBUTESlpMutexAttributes, // 指向安全属性的指针BOOLbInitialOwner, // 初始化互斥对象的所有者LPCTSTRlpName // 指向互斥对象名的指针);DWORD WINAP

2016-11-16 15:06:39 7230 1

原创 关于CreateThread()的几点疑惑

一、为什么要特意去CloseHandle()?线程中止运行后,线程对象仍然在系统中,必须通过CloseHandle函数来关闭该线程对象。CloseHandle函数的原型是:BOOL CloseHandle( HANDLE hObject );//HANDLE hObject 对象句柄CloseHandle可以关闭多种类型的对象,比如文件对象等,这里使用这个函数来关闭线程对象。调用时,hObject为

2016-11-08 11:24:00 1587

转载 C++的三种访问权限与三种继承方式

转自[阳光日志]的博客《C++的三种访问权限与三种继承方式》三种访问权限我们知道C++中的类,有三种访问权限(也称作访问控制),它们分别是public、protected、private。要理解它们其实也很容易,看下面了一个例子。 父类:class Person{public: Person(const string& name, int age) : m_name(name), m

2016-11-07 16:43:05 567

转载 Linux信号量详解

本篇文章转自http://blog.csdn.net/qinxiongxu/article/details/7830537信号量 一.什么是信号量 信号量的使用主要是用来保护共享资源,使得资源在一个时刻只有一个进程(线程) 所拥有。 信号量的值为正的时候,说明它空闲。所测试的线程可以锁定而使用它。若为0,说明 它被占用,测试的线程要进入睡眠队列中,等待被唤醒。 二.信号量的分类 在学习

2016-10-24 16:15:43 1260 1

原创 C++多线程同步之Semaphore(信号量)

一、线程间同步的几种方式从上篇博文中可以发现,当多个线程对同一资源进行使用时,会产生“争夺”的情况,为了避免这种情况的产生,也就出现了线程间的同步这个技术。线程间的同步有多种方式,在接下来的博文中我会依次介绍几种主流的同步方式,以及他们之间的区别。在本篇博文中将介绍使用信号量Semaphore达到线程间同步的目的。老规矩,所有代码都讲在win32平台和Linux平台下都实现一遍。相关函数和头文件//

2016-10-24 16:06:40 7469 2

原创 C++ 多线程之创建多线程CreateThread

一、为什么要写这篇博客一直对C++多线程一知半解,感觉没有实际进入过C++多线程的世界,因此想从头开始慢慢真正进入C++多线程,真正了解多线程。因为我也想了解Linux下的C++ 编程,因此我也会在Linux平台下进行编写代码并验证。文章里面会借鉴一些网上优秀的代码和讲解,但买一行代码我都会自己敲一遍,学习和借鉴是一起的,但代码必须是自己一行一行写的才行。这里的开头也是希望自己能记住自己的初衷!二、

2016-08-25 17:18:10 11605 1

原创 各硬件设备在Linux中的文件名、磁盘分区

在Linux系统中,每个设备都被当做一个文件来对待,几乎所有的硬件设备文件都在/dev这个目录内。1、以下列举几个典型设备的文件名: 设备 设备在Linux内的文件名 IDE硬盘 /dev/hd[a-d] SCSI/STAT/USB硬盘 /dev/sd[a-p] U盘 dev/sd[a-p] (与STAT相同) 软驱 dev/fd[0-1] 打印机 25

2016-08-04 20:43:54 4940

转载 ofstream的使用方法--超级精细

转 ofstream的使用方法–超级精细ofstream的使用方法ofstream是从内存到硬盘,ifstream是从硬盘到内存,其实所谓的流缓冲就是内存空间; 在C++中,有一个stream这个类,所有的I/O都以这个“流”类为基础的,包括我们要认识的文件I/O,stream这个类有两个重要的运算符: 1、插入器(<<)   向流输出数据。比如说系统有一个默认的标准输出流(cout),一般情

2016-08-03 21:08:53 6105

转载 C++文件读写详解(ofstream,ifstream,fstream)

转 C++文件读写详解(ofstream,ifstream,fstream) 在看C++编程思想中,每个练习基本都是使用ofstream,ifstream,fstream,以前粗略知道其用法和含义,在看了几位大牛的博文后,进行整理和总结: 这里主要是讨论fstream的内容:#include <fstream> ofstream //文件写操作 内存写入存储设备 ifs

2016-08-03 20:47:59 577

原创 Excel操作Bug引出的问题:如何判断文件是否被占用、打开

文件是否被占用

2016-08-03 20:10:30 3266

转载 C语言中printf(),sprintf(),scanf(),sscanf()的用法和区别

printf语法:#include <stdio.h>int printf( const char *format, ... );printf()函数根据format(格式)给出的格式打印输出到STDOUT(标准输出)和其它参数中。返回值是输出的字符数量。sprintf语法: #include <stdio.h> int sprintf( char *buffer, const char *f

2016-07-27 20:21:18 674

转载 TCP之长连接与短连接

TCP连接当网络通信时采用TCP协议时,在真正的读写操作之前,server与client之间必须建立一个连接,当读写操作完成后,双方不再需要这个连接时它们可以释放这个连接,连接的建立是需要三次握手的,而释放则需要4次握手,所以说每个连接的建立都是需要资源消耗和时间消耗的TCP保活的必要性:TCP的长连接理论上只要连接建立后,就会一直保持着。但有时有一些防火墙之类的软件会自动检查主机的网络连接状况,比

2016-07-26 19:53:28 2130

转载 《TCP之深入浅出Send和Recv》

转《TCP之深入浅出Send和Recv》一、TCP连接三次握手TCP连接的三次握手: 第一次(A—>B),SYN=1,seq=x 第二次(B—>A),SYN=1,ACK=1,seq=y,ack=x+1 //seq为什么是y,ack为什么是x+1? 第三次(A—>B),ACK=1,seq=x+1,ack=y+1 //seq为什么是x+1,ack为什么是y+1?

2016-07-25 20:40:20 1116

原创 BCB之OLE方式操作Excel

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl

2016-07-22 16:22:43 2486

原创 C++设计模式之Singleton

一、功能保证一个类只能产生一个实例。二、结构图暂无三、优缺点 Singleton模式是做为”全局变量”的替代品出现的。所以它具有全局变量的特点:全局可见、贯穿应用程序的整个生命期,它也具有全局变量不具备的性质:同类型的对象实例只可能有一个。四、代码示例教科书上的Singleton定义如下: class Singleton{ public: static Singleton* Ins

2015-12-10 15:53:15 447

原创 C++设计模式之AbstractFactory

一、功能提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。(个人粗浅理解:即提供一个类的接口,然后可以创建多个类的对象)二、结构图三、优缺点优点:(1)封装创建对象过程。客户不用知道类厂是如何创建类实例的,类厂封闭了所有创建的细节。这样可选择不同的创建方法,增加了灵活性。 (2)将客户与具体类隔离,提高了各自的可重用性。   缺点:Factory类层次与具体类层次通常是平行的(

2015-12-09 17:37:24 397

原创 C++ 设计模式之Adaptor

一、Adapter功能将一个类的接口(待匹配接口)转换成客户希望的另外一个接口(目标接口),解决两个已有接口之间不匹配的问题。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。实质上过程是adaptee(待匹配类)---->adapter(匹配类)---->target(模板类),target类中的接口才是客户希望要的接口。二、结构图Adapter有两

2015-12-09 09:42:51 910

空空如也

空空如也

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

TA关注的人

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