
::C++
wpc320
这个作者很懒,什么都没留下…
展开
-
vs2010中加入多个目录的源码
1、在解决方案下的目录中拷入代码2、解决方案管理器下面有一行工具栏,点击第二个按钮“显示所有文件”3、在想要加入的文件夹上右键“包括在项目中”4、点击第二个按钮“显示所有文件”原创 2012-11-08 20:41:20 · 1906 阅读 · 0 评论 -
线程安全可重入性与可重入性函数
如果一个函数的实现里面在不加锁的情况之下随意操作全局变量,那么它就是线程不安全的,因为该函数没有限制全局变量,没有让全局变量更加“适应”线 程。那么什么是可重入函数呢?顾名思义,可重入就是一个执行绪没有离开这个函数的时候允许另一个执行绪进入该函数。线程安全强调的是该函数的实现操作,而 可重入性则更多的强调该函数的调用规则,因此函数的可重入性约束要高于线程安全,可重入函数一定是线程安全的,可重入函数转载 2012-11-09 16:37:51 · 893 阅读 · 0 评论 -
Google Breakpad 之三,实战Windows平台crash
Windows,今天你的C挂挂程序挂了没?还是Google大牛的地址http://code.google.com/p/google-breakpad/wiki/WindowsClientIntegration本人还是白话,术语用E文。首先产生工程文件,下载python2.7,windows二进制版本安装好,设好Path环境变量。然后Dos进入Breakpad目录,设置好使用vs20原创 2012-12-13 18:14:03 · 6993 阅读 · 0 评论 -
使用Android NDK中的独立toolchain来开发C/C++程序
从网上可以找到一些ARM toolchain,但是由于Android系统使用的不是glibc而是Bionic libc。因此只能使用静态编译程序。其实Android的NDK自带了toolchain,但是不能直接使用NDK目录内的toolchain,否则会出现找不到crtbegin_dynamic.o文件。即使用-L指定目录或者直接放到gcc命令行也还是提示该文件找不到。(参考最后附上的链接转载 2013-01-03 13:43:55 · 1278 阅读 · 0 评论 -
开源库 pjnath的改造,异步接口 修改 为 同步 超时返回 接口
提供一种思路,将pjnath非阻塞函数改造为阻塞函数,同样适用其他非阻塞接口。背景:开源库有时候提供的接口并不人性化,例如:pjnath里的pj_ice_strans_create用来创建一个ice,它调用了sess_init_update(用来检测ice的候选candidate的)。我们知道本机客户端获取的自身candidate一般需要两个以上才能够有效的实现对remote实现n原创 2013-01-19 18:27:29 · 4108 阅读 · 2 评论 -
Low-fragmentation Heap 翻译(MSDN线上资料--LFH)
原文地址:http://msdn.microsoft.com/en-us/library/aa366750(VS.85).aspx[The information in this topic applies to Windows Server 2003 and Windows XP. Starting with Windows Vista, the system uses the low-fr翻译 2012-09-06 10:29:58 · 2085 阅读 · 0 评论 -
FEC(Forward Error Correction)前向纠错 UDP\RTP 中使用用于改善无线等网络丢包等问题
FEC(Forward Error Correction)前向纠错 UDP\RTP 中使用用于改善无线等网络丢包等问题算法暂不介绍。思路:FEC ENCODE 增加冗余包,当无线等网络丢包之后,接收端使用冗余包可将丢失的包DECODE出来。举例:10个包,编码后会增加2个包,共12个包发送到接收端,接收端丢失5和9包,仅靠剩下的10个包就可以解出5和9包。结果就是,接收端接收到了完原创 2012-12-17 14:55:07 · 3520 阅读 · 1 评论 -
C++和C的源码混合使用需要了解的事
你需要掌握C和C++的语法。如果你有个c的可用源码,尽量不要去修改它,而是建个.h来输出声明,在外边的源码文件中再进行封装。理由:1、因为c源码里边经常是回调、结构体、多线程、全局变量满天飞,修改它是自找麻烦。2、即便成功修改为c++文件,那么它就不能用于c的工程中了,有害无益。 当你把cpp的文件改为c编译时,错误肯定会成百上千,下面介绍错误对应的解决方法。当你的c+原创 2013-01-18 19:01:31 · 2016 阅读 · 0 评论 -
STL 跨模块 调用 异常 解决
百度了一天,现在把结论放上边:1、不要用STL(std::string属于STL)来跨模块传输数据,例如:dll(so)之间,dll(so)和exe(elf)之间。解决方法:使用基本类型、数组、结构体,或者使用下面文章中的方法。2、不要跨模块申请和释放内存。解决方法:可以实现一个接口来释放,其他方法参考下面。今天用个测试exe调用了个dll,有个接口返回std::string,原创 2012-12-24 14:49:57 · 4069 阅读 · 2 评论 -
@C++11 Thread support library 概览 线程库中英文对照
地址:http://en.cppreference.com/w/cpp/threadThread support library 1 Threads线程1.1 Functions managing the current thread管理当前线程函数 2 Mutual exclusion互斥量2.1 Generic m原创 2013-01-23 15:27:38 · 3915 阅读 · 0 评论 -
@C++11 的新特性 对C++技术格局的影响
C++ referenceFrom CppreferenceJump to: navigation, search FAQLanguage PreprocessorKeywordsHeadersOperator precedenceEscape sequencesASCII char原创 2013-01-23 14:23:48 · 4508 阅读 · 0 评论 -
#linux 打包 静态库
有几个.a的静态库,想打成一个用先解包成o文件ar x libaaa.aar x libbbb.aar rcs libccc.a *.oar 命令用途维护链接编辑器使用的索引库。语法ar [ -c ] [ -l ] [ -g | -o ] [ -s ] [ -v ] [ -C ] [ -T ] [ -z ] { -h | -p | -t | -x }转载 2013-01-22 20:29:01 · 5925 阅读 · 0 评论 -
@不include头文件 照样使用里边的类型的方法,适用于封装库
其实这项功能一直就有,只不过网上提的人不多。适用背景:1、有不想暴露给别人的头文件2、有不能include某头文件的需求,如:该文件有类型冲突的定义等等。3、不用提供源码,只需提供头文件和库文件举个例子://a.hclass A{public: A() { printf("class A\n"); }};//b.hclass B : public原创 2013-01-21 15:15:39 · 3322 阅读 · 0 评论 -
网络协议
网路协议应用层DHCP ·DNS · FTP · Gopher ·HTTP · IMAP4 · IRC · NNTP · XMPP · POP3 · SIP · SMTP · SNMP · SSH · TELNET · RPC · RTCP · RTP ·RTSP ·SDP · SOAP · GTP ·转载 2012-10-17 16:48:43 · 899 阅读 · 0 评论 -
CASyncSocket类和CSocket类编程
本文主要讲解以下内容 (1)CAsyncSocket类编程模式。 (2)CSocket类编程模式。 (3)CSocketFile类和CArchive类简介。 通过学习,可以掌握CAsyncSocket类和CSocket类的编程模式,了解CSocketFile类和 CArchive类。CAsyncSocket类逐个封装了Winsock函转载 2009-06-30 14:20:00 · 2288 阅读 · 0 评论 -
类的sizeofC/C++
1、空类的sizeof是1。空类是指没有成员的类,类中的函数不占空间,除非是虚函数。如: class A { public: A(){} ~A(){} void fun(){] };sizeof(A)是1.2、若类中包含成员,则类对象的大小只包括其中非静态成员经过转载 2010-06-27 09:51:00 · 692 阅读 · 0 评论 -
c/c++中获取当前目录
1、输出到文本#ifdef WIN32 system("dir > dircur.txt");#else system("ls > dircur.txt");#endif2、使用getcwd获取到数组无论是windows还是linux都有getcwd这个函数原创 2010-08-06 12:22:00 · 1064 阅读 · 0 评论 -
多路复用服务器网络模型
<br />多路复用的方式是真正实用的服务器程序,非多路复用的网络程序只能作为学习或着陪测的角色。本文说下个人接触过的多路复用函数:select/poll/epoll/port。kqueue的*nix系统没接触过,估计熟悉了上面四种,kqueue也只是需要熟悉一下而已。<br />一、select模型<br />select原型:<br />int select(int n, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timev转载 2010-08-06 10:41:00 · 1144 阅读 · 0 评论 -
H.264 RTP payload 格式
H.264 RTP payload 格式<br /><br />H.264 视频 RTP 负载格式<br />1. 网络抽象层单元类型 (NALU)<br />NALU 头由一个字节组成, 它的语法如下:<br /> +---------------+<br /> |0|1|2|3|4|5|6|7|<br /> +-+-+-+-+-+-+-+-+<br /> |F|NRI| Type |<br /> +---------------+<br />F:转载 2010-06-19 19:18:00 · 675 阅读 · 0 评论 -
RTP RTCP RTSP的联系
<br />描述: RTP/RTCP,RTSP图例<br />图片: <br /> <br /> <br /> <br />描述: 协议关系图<br />图片: <br /><br /> <br /> <br /> <br />一.产生的背景<br />随着互连网的发展,人们已经不满足于传统的HTTP,FTP和电子邮件等文本信息和服务,而对内容丰富多彩的多媒体信息,服务以及多媒体通信方式提出了需求,包括声音,图象,图形,视频信息等等,而这些不但传输的数据量大而且对交互性和实时性要求很高。<br />这时,基转载 2010-06-19 19:01:00 · 1134 阅读 · 1 评论 -
TCP/IP通信程序设计的丰富多样性(长短连接、同步异步等)
<br />TCP/IP通信程序设计的丰富多样性 <br /><br />刚接触TCP/IP通信设计的人根据范例可以很快编出一个通信程 <br />序,据此一些人可能会认为TCP/IP编程很简单。其实不然, <br />TCP/IP编程具有较为丰富的内容。其编程的丰富性主要体现在 <br />通信方式和报文格式的多样性上。 <br /><br />一。通信方式 <br />主要有以下三大类: <br />(一)SERVER/CLIENT方式 <br />1.一个Client方连接一个Server方,或称点对转载 2010-06-23 23:03:00 · 1532 阅读 · 0 评论 -
网络编程中的异步、同步、阻塞、非阻塞的理解
1、异步和同步为一组对应概念。(我们讨论同步异步,都特指那些需要其他部件协作或者需要一定时间完成的任务,因为很快完成的任务无所谓同步和异步) 同步其实就是顺序执行,如果线程A当中调用了函数B,则必须要等到B得到结果后返回,线程A才能继续进行别的工作。 异步则和同步相对,异步在调用B的时候,虽然没有B的返回结果,但线程A可以继续执行,只是在B得到结果返回的时候通过状态、通知和回调来通知调用者A。当然,使用状态检测可能很费资源,因为你必须轮询B是否返回;而采用事件或者消息机制来通知则可以大大节省系统开转载 2011-01-07 11:07:00 · 899 阅读 · 0 评论 -
apache中http_connection系列api接口功能翻译
<br />http_connection.h<br />文件版本2.0<br />/**<br /> * @file http_connection.h<br /> * @brief Apache connection library//apache连接库<br /> */<br />/**<br /> * This is the protocol module driver. This calls all of the<br /> * pre-connection and connection ho原创 2010-11-15 14:47:00 · 1860 阅读 · 0 评论 -
C++ 非完美Singleton
非完美C++ Singleton实现[1]Singleton模式是一种非常简单的设计模式,这种模式很常用也很容易被滥用。当你设计应用程序的时候,经常会遇到某些对象在整个程序的生命周期应该仅有一个实例的情况,比如File System,Graphic System,Logging Utility,这时候就可以用到Singleton模式。Singleton模式在GOF中描述如下:Ens转载 2012-07-25 15:53:44 · 1022 阅读 · 0 评论 -
inline与lnk2001、lnk2019,鸡肋?
inline函数居然出现了lnk2001、lnk2019,先贴代码。a.h#pragma onceclass A{public: inline void foo(); void use_foo();}; a.cpp#include "A.h"inline void A::foo(){}void A::use_foo(){原创 2013-07-15 15:46:19 · 3623 阅读 · 0 评论