自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(154)
  • 资源 (1)
  • 收藏
  • 关注

原创 一、音频的基础篇

一、音频的基础篇 占个坑

2018-11-01 11:46:10 387 1

原创 OO设计思想->继承与组合的区别

C++继承、组合、聚合和关联定义:继承继承,表达的是逻辑上B类是A类的“一种”,为了提供程序可复用性,采用B继承A的属性和功能。以下场景特别注意不能使用继承:1.A类和B类毫无关系,不可以为了使B类的功能更多些二让B类继承A类的功能。2.逻辑上A类是B类的"一部分",此时应该用组合的形式,比如眼睛和耳朵是头的一部分。calss animal{};class human : public

2017-10-17 20:54:01 710 1

原创 FFmpeg库 32位和64位

之前一直很混乱,app 32位 和 64位有什么区别,FFmpeg库32位和64位又分别是什么意思? 现在理顺一下:64位必须得运行在64bit的OS和App之下。 32位App+32位ffmpeg,可运行在64 bit的OS下,也可运行在32 bit的OS下。如现在的YY客户端、QQ的客户端,都是32位的,如服务器大多程序,都是64位的

2015-08-09 10:35:57 4098 1

转载 完成端口模型

完成端口模型“完成端口”模型是迄今为止最为复杂的一种 I / O模型。然而,假若一个应用程序同时需要管理为数众多的套接字,那么采用这种模型,往往可以达到最佳的系统性能!但不幸的是,该模型只适用于Windows NT和Windows 2000操作系统。因其设计的复杂性,只有在你的应用程序需要同时管理数百乃至上千个套接字的时候,而且希望随着系统内安装的 C P U数量的增多,应用程

2015-07-30 21:05:50 567

转载 WINDOWS重叠IO模型

一. 重叠IO模型简介重叠IO的核心实际上就是一个重叠的数据结构。应用程序在单个套接字上投递一个或者多个IO操作,当IO操作完成时对应的重叠数据结构中的事件对象会受信,相应的应用程序通过查事件对象可以得到通知。就这样,通过重叠的数据结构将异步的IO和程序连接起来了。   重叠数据结构: typedef struct _OVERLAPPED{      DWO

2015-07-30 21:03:15 2578

转载 C++基于TCP/IP简单的客户端、服务器通信程序实例

本篇文章实现了一个基于TCP 的一个非常简单的客户/服务器通信程序实例。该程序中通讯协议使用的是面向连接的TCP协议SOCK_STREAM, 服务器的ip地址为本地地址即:127.0.0.1,端口号为自定义的5099(大于1024即可),服务端的功能只要有客户端连接请求,服务端就接受连接,在连接成功后向客户端发送数据,并且接受客户端发送的数据。客户端在向服务端发出请求后接受并显示服

2015-07-30 20:57:32 1712

转载 一份C++线程池的代码(转)

转载一份C++线程池的代码,非常实用 收藏#ifndef _ThreadPool_H_#define _ThreadPool_H_#pragma warning(disable: 4530)#pragma warning(disable: 4786)#include #include #include #include using namespace std

2015-07-30 20:56:12 423

转载 套接字IO模型(三) WSAEventSelect模型

WSAEventSelect模型类似WSAAsynSelect模型,但最主要的区别是网络事件发生时会被发送到一个事件对象句柄,而不是发送到一个窗口。这样可能更加的好,对于服务器端的程序来说。使用步骤如下:a、 创建事件对象来接收网络事件:WSAEVENT WSACreateEvent( void );该函数的返回值为一个事件对象句柄,它具有两种工作状态:已传信(si

2015-07-29 22:38:33 494

转载 套接字IO模型(二) WSAAsynSelect模型

WSAAsynSelect模型也是一个常用的异步I/O模型。应用程序可以在一个套接字上接收以WINDOWS消息为基础的网络事件通知。该模型的实现方法是通过调用WSAAsynSelect函数自动将套接字设置(转变)为非阻塞模式,并向WINDOWS注册一个或多个网络事件,并提供一个通知时使用的窗口句柄。当注册的事件发生时,对应的窗口将收到一个基于消息的通知。   1 #includ

2015-07-29 22:34:14 533

转载 套接字IO模型(一) Select模型

套接字IO模型(一) Select模型讲一下套接字模式和套接字I/O模型的区别。先说明一下,只针对Winsock,如果你要骨头里挑鸡蛋把UNIX下的套接字概念来往这里套,那就不关我的事。套接字模式:阻塞套接字和非阻塞套接字。或者叫同步套接字和异步套接字。套接字模型:描述如何对套接字的I/O行为进行管理。Winsock提供的I/O模型一共有五种:select,WSAAsync

2015-07-29 22:28:14 494

转载 求一个类的sizeof应考虑的问题

昨天面试,面试官让我说一说求一个类的sizeof应该考虑的问题,心想,太好了,之前sizeof可是做了不少功夫,就说了类的非静态、非全局成员,如果有虚函数就要加上一个指向虚表的指针,4字节大小,然后说,大概是这样。面试官就问,虚函数的实现机制是?大概讲了一下虚表之类的东东,然后他问,那如果是虚继承呢,求sizeof还是一样的么?先是一愣,心想,妈呀,什么是虚继承呢,然后还是淡定地回了,应该也是一样

2015-07-29 21:42:11 395

转载 腾讯面试题总结,似乎是面试C++方向的(小巫总结)

腾讯面试题总结,似乎是面试C++方向的(小巫总结)这份面试题是我在网上收集到的,是C++的,本人是搞Java的,C++以前也稍微接触过,在这里我稍微总结一下这份面试题,供需要的人参考。电话面试题目:1. 异步通信和同步通信的区别?同步通信与异步通信区别:   1.同步通信要求接收端时钟频率和发送端时钟频率一致,发送端发送连续的比特流;

2015-07-29 21:21:16 413

转载 Windows 套接字I/O 模型

windows提供了一些I/O 模型帮助应用程序以同步或者异步方式在一个或者多个套接字上管理I/O。大体上,这样的I/O 模型共有6 种。阻塞(blocking)模型选择(select)模型WSAAsyncSelect模型WSAEventSelect 模型重叠(overlapped)模型完成端口(completion port)模型1.阻塞(blocking)模型在

2015-07-29 21:00:14 510

转载 c++编写断点续传和多线程下载模块【转】

在当今的网络时代,下载软件是使用最为频繁的软件之一。几年来,下载技术也在不停地发展。最原始的下载功能仅仅是个“下载”过程,即从WEB服务器上连续地读取文件。其最大的问题是,由于网络的不稳定性,一旦连接断开使得下载过程中断,就不得不全部从头再来一次。  随后,“断点续传”的概念就出来了,顾名思义,就是如果下载中断,在重新建立连接后,跳过已经下载的部分,而只下载还没有下载的部分。   

2015-07-28 23:02:06 5286 1

原创 非递归方法遍目录

之前有个电话面试,其中一道题就是:用非递归的方式实现文件夹遍历?在电面的时候没有答出来,过后分分钟就想到了答案,因为之前自己实现过按层序的方式打印一棵树,用的也是非递归的方式,现在遍历文件夹不就是遍历这颗树吗!怎么就没想出来呢!在这里简单的记录下,用了C#和C++两个版本实现。    我这里的实现的功能是:用非递归的方式获得一个文件夹中文件的个数。    思路简单介绍: 

2015-07-28 22:43:15 657

转载 Windows文件操作的API函数[转载]

在VC中,大多数情况对文件的操作都使用系统提供的 API 函数,但有的函数我们不是很熟悉,以下提供一些文件操作 API 函数介绍: 一般文件操作 API CreateFile 打开文件 要对文件进行读写等操作,首先必须获得文件句柄,通过该函数可以获得文件句柄,该函数是通向文件世界的大门。 ReadFile 从文件中读取字节信息。 在打开文件获得了文件句柄之后

2015-07-28 22:28:24 546

转载 Dump文件

Dump文件是进程的内存镜像。可以把程序的执行状态通过调试器保存到dump文件中。Dump文件是用来给驱动程序编写人员调试驱动程序用的,这种文件必须用专用工具软件打开,比如使用WinDbg打开。在Windbg中可以通过.dump命令保存进程的dump文件。比如下面的命令把当前进程的镜像保存为c:\testdump.dmp文件:.dump /ma C:\tes

2015-07-28 22:01:27 554

转载 PDB文件:每个开发人员都必须知道的

PDB Files: What Every Developer Must Knowhttp://www.wintellect.com/CS/blogs/jrobbins/archive/2009/05/11/pdb-files-what-every-developer-must-know.aspx PDB文件:每个开发人员都必须知道的 一 什么是PDB文件大部分的开

2015-07-28 21:51:01 383

转载 VS2008设置内存断点

菜鸟的我居然不知道什么是内存断点。自己理解一下:内存断点就是当某个内存改变的时候会断下来的。就跟程序断点一样,运行到那里就断下来一样。VS2008怎么设置内存断点呢。我打开内存监视器。按F9是没有效果的,给出错误提示。后来通过网上搜了才知道原来是这样设置的哦!哈哈。截图什么的就算了,因为我觉得我对VS2008的界面应该还是比较了解的吧。哈哈1.内存断点只能是在程序调试运行的时候

2015-07-28 19:50:27 1216

转载 编写的windows程序,崩溃时产生crash dump文件的办法

一、引言dump文件是C++程序发生异常时,保存当时程序运行状态的文件,是调试异常程序重要的方法,所以程序崩溃时,除了日志文件,dump文件便成了我们查找错误的最后一根救命的稻草。windows程序产生dump文件和linux程序产生dump文件的方式不一样,linux默认是不让产生core dump文件,只要在用户自己的~/.bash_profile文件中增加ulimit -S

2015-07-28 08:37:39 740

转载 C++之“友元类”学习笔记

=======================什么是友元类=======================      当一个类B成为了另外一个类A的“朋友”时,那么类A的私有和保护的数据成员就可以被类B访问。我们就把类B叫做类A的友元。=======================友元类能做什么=======================      友元类可以通过自己的方法

2015-07-27 21:36:00 348

转载 为什么需要字节对齐?

文章最后本人做了一幅图,一看就明白了,这个问题网上讲的不少,但是都没有把问题说透。  一、概念       对齐跟数据在内存中的位置有关。如果一个变量的内存地址正好位于它长度的整数倍,他就被称做自然对齐。比如在32位cpu下,假设一个整型变量的地址为0x00000004,那它就是自然对齐的。     二、为什么要字节对齐      需要字节对齐的根本原因在于CPU访

2015-07-27 21:27:16 366

转载 使用TCP协议的NAT穿透技术 (转)

其实很早我就已经实现了使用TCP协议穿透NAT了,但是苦于一直没有时间,所以没有写出来,现在终于放假有一点空闲,于是写出来共享之。    一直以来,说起NAT穿透,很多人都会被告知使用UDP打孔这个技术,基本上没有人会告诉你如何使用TCP协议去穿透(甚至有的人会直接告诉你TCP协议是无法实现穿透的)。但是,众所周知的是,UDP是一个无连接的数据报协议,使用它就必须自己维护收发数据包的完

2015-07-27 20:11:59 490

转载 lua 命令大全

进入vi的命令 vi filename :打开或新建文件,并将光标置于第一行首 vi +n filename :打开文件,并将光标置于第n行首 vi + filename :打开文件,并将光标置于最后一行首 vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处 vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复f

2015-04-30 15:06:59 3846

转载 SecureCRT中文显示乱码的解决方法

最近开始用SecureCRT登陆linux系统,由于是新手,很多问题不清楚,碰到显示中文乱码的问题,困扰了好几天,网上的很多解决方法是: 具体解决方法是: 1,修改远程linux机器的配置 vim /etc/sysconfig/i18n 把LANG改成支持UTF-8的字符集 如: LANG=”zh_CN.UTF-8″ 或者是 LANG=”en_US.UTF-8″ 

2015-04-24 16:59:18 527

转载 SecureCRT连接Linux--Ubuntu

SSH看做是telnet的加强版,telnet的密码和信息都是不加密的,而ssh则加密。 想用SecureCRT连接Linux--Ubuntu,需要SSH服务的支持,很多Linux系统在安装的时候是不安装SSH服务的,所以需要自己手动安装,才能用SecureCRT连接Linux。 场景描述:主机 Windows2003,虚拟机VMware,虚拟机系统Ubun

2015-04-24 16:54:40 361

转载 IntelliJ IDEA 13搭建Android集成开发环境(图文教程)

【开发环境】物理机版本:Win 7旗舰版Java SDK版本:Android SDK版本:Android 4.4(API 20)IntelliJ IDEA版本:IntelliJ IDEA 13.1一、IntelliJ IDEA的引入:2013年,IntelliJ IDEA小组已经与众多业内领先的开发技术建立了非常紧密的关系:例如Android, Sp

2015-03-20 19:00:24 819

转载 多线程 - CreateThread与_beginthreadex本质区别

本文将带领你与多线程作第一次亲密接触,并深入分析CreateThread与_beginthreadex的本质区别,相信阅读本文后你能轻松的使用多线程并能流畅准确的回答CreateThread与_beginthreadex到底有什么区别,在实际的编程中到底应该使用CreateThread还是_beginthreadex?    使用多线程其实是非常容易的,下面这个程序的主线程会创建了

2015-03-12 22:45:37 471

转载 DLL-LoadLibrary函数

加载指定的模块到调用进程的地址空间。指定的模块可能导致被装载的其它模块。有关其他加载选项,使用 函数LoadLibraryEx函数。句法C ++HMODULE WINAPI调用LoadLibrary( _In_ LPCTSTR lpFileName的对象);参数lpFileName的对象 

2015-03-12 21:51:53 5114

转载 DLL-多个进程间共享动态链接库的原理

同样这个问题是我在面试总监的时候,总监问我的一个问题,这些天一直 忙活,都没有好好看书了,今天总结一下这个问题?为什么一个进程用完一个动态链接库以后另一个进程还可以继续使用呢?当时回答的很是笼统,只说对了答案的一半,现在就在这里好好总结一下吧!前面我们已经说过进程间的通信有好几种方式,其实现在我们讲的这种动态链接库也是进程间的通信方式之一。不管是windows还是Linux操作系统其实所有

2015-03-12 21:09:03 1511

转载 窄字节与宽字节

窄字节与宽字节 1、什么是窄字节,什么是宽字节:英文字符,其大小为1字节的,叫窄字节英文字符,其大小为2字节的,叫宽字节2、不管编译器宽窄设置,中文字符默认占2字节,英文字符默认占1字节如: sizeof(‘你’)  结果是2 ,不管编译器如何设置宽窄sizeof("你");结果3  中文2字节,结束符1字节  双引号表示字符串,自动添加结束符sizeof(

2015-03-06 11:31:12 3676

转载 windows进程中的内存结构

windows进程中的内存结构在阅读本文之前,如果你连堆栈是什么多不知道的话,请先阅读文章后面的基础知识。 接触过编程的人都知道,高级语言都能通过变量名来访问内存中的数据。那么这些变量在内存中是如何存放的呢?程序又是如何使用这些变量的呢?下面就会对此进行深入的讨论。下文中的C语言代码如没有特别声明,默认都使用VC编译的release版。 首先,来了解一下 C 语言的变量是如

2015-03-05 21:38:01 652

转载 函数调用方式__stdecl _stdcall _fastcall __thiscall介绍

__cdecl 是C DECLaration的缩写(declaration,声明),表示C语言默认的函数调用方法:所有参数从右到左依次入栈,这些参数由调用者清除,称为手动清栈。被调用函数不会要求调用者传递多少参数,调用者传递过多或者过少的参数,甚至完全不同的参数都不会产生编译阶段的错误。 _stdcall 是StandardCall的缩写,是C++的标准调用方式:所有参数从右到左依次入栈,

2015-03-05 18:19:36 661

转载 “浅拷贝”与“深拷贝”

C++中对象的复制就如同“克隆”,用一个已有的对象快速地复制出多个完全相同的对象。一般而言,以下三种情况都会使用到对象的复制:(1)建立一个新对象,并用另一个同类的已有对象对新对象进行初始化,例如:[cpp] view plaincopyclass Rect  {  private:      int width;      int height;  };    R

2015-03-05 16:57:51 364

转载 使用Android Studio搭建Android集成开发环境(图文教程)

【正文】之前本人在博客中讲到使用IntelliJ IDEA 13搭建Android集成开发环境(图文教程)。昨天重装系统了,所以为了跟上时代,今天来试一下Android Studio的使用。之前看过几篇博客,介绍了如何使用Android SDK搭建Android集成开发环境,但是感觉不详细,所以打算自己整理一个详细的图文教程,希望能对新手(包括自己)有所帮助。【开发环境】物

2015-03-04 15:53:03 599

原创 鹅厂C++面试

面试经验-鹅厂基础一面悲剧了,整理下:1. const 使用2. 类对象内存模型 - 虚表-函数-成员 3. 拷贝构造函数:深拷贝和浅拷贝4. 函数调用  stdcall  _  xxxcall5. 堆栈原理6. 内存管理7. windebug  pdb 和  dump怎么录制下来的8. 线程调度,两个线程调度做了些什么9. loadlibrary做了什么1

2015-03-04 10:32:44 946

转载 微信摇一摇.周边 (技术实施原理)

015-01-26[url=]微信摇一摇周边助手[/url]申请“摇一摇周边”内测功能,请在PC上访问申请平台:http://zb.weixin.qq.com

2015-03-03 18:12:13 2295

转载 iBeacon工作原理(How do iBeacon work?)

iBeacon是最近非常火的话题。这种技术能够实现室内定位,让你的手机能够知道是否处于一个Beacon的范围内。使用这种技术能够产生很多应用程序:比如帮助你在停车场中找到你的汽车,或者在零售店中根据所处位置提供优惠券或者其它一些位置相关的服务。还有很多我们现在无法想象得到的应用程序。现在有很多种关于iBeacon是什么,以及我们可以如何使用它们的解释。然而从技术角度上来说,它们是如何工作的

2015-03-03 18:09:01 817

转载 c/c++内存分配与内存对齐全面探讨

不明白内存分配和指针的可以看看,其实这本是我们老师留的一个操作系统科技小论文作业,不知道写什么,干脆把以前收藏的经典C内存分配的文章整理并修改了一下。       此文章有2个用处,1:这是个小论文,格式完整,大家可以复制回去交作业;2:这是整理的经典C内存分配小教程(也加了些我自己的观点),不明白内存分配的可以看看。还有很重要的一个问题:      这篇文章引用的很多内容我也不知道究竟是出自

2015-03-01 18:30:57 414

转载 Windows内存管理

本文主要内容:1.基本概念:物理内存、虚拟内存;物理地址、虚拟地址、逻辑地址;页目录,页表2.Windows内存管理3.CPU段式内存管理4.CPU页式内存管理 一、基本概念1. 两个内存概念物理内存:人尽皆知,就是插在主板上的内存条。他是固定的,内存条的容量多大,物理内存就有多大(集成显卡系统除外)。但是如果程序运行很多或者程序本身很大的话,就会导致大量的物理内存

2015-03-01 18:02:04 771

WindowsC++高级调试中文版.zip

非常不错讲解系统内核的书籍,非常不错讲解系统内核的书籍,非常不错讲解系统内核的书籍,非常不错讲解系统内核的书籍,非常不错讲解系统内核的书籍,非常不错讲解系统内核的书籍,非常不错讲解系统内核的书籍,

2019-09-25

空空如也

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

TA关注的人

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