摘要: template class shared_ptr;template class weak_ptr;// This class is an internal implementation detail for shared_ptr.class SharedPtrControlBlock {tem... 阅读全文
posted @ 2014-11-25 21:22 Himer 阅读(316) 评论(0) 推荐(0) 编辑
摘要: #include "printer.h"#include #include #include #include #include printer::printer(QWidget *parent, Qt::WFlags flags) : QDialog(parent, flags) , m_prin... 阅读全文
posted @ 2014-11-15 18:52 Himer 阅读(218) 评论(0) 推荐(0) 编辑
摘要: 位域的引入给用户的最大的好处莫过于可以有效的利用'昂贵'的内存和操作bit的能力了。而且这种操作bit位的能力很是方便,利用结构体域名即可对这些bit进行操作。例如:structfoo{inta:1;intb:2;shortc:1;};structfooaFoo;aFoo.a=1;aFoo.b=3;aFoo.c=0;通过结构体实例.域名即可修改某些bit得值,这些都是编译器的'甜头'。当然我们也可以自己通过一些'掩码'和移位操作来修改这些bit,当然如果不是十分需要,我们是不需要这么做的。位域还提供一种叫'匿名'位域的语法,它常用 阅读全文
posted @ 2013-07-01 10:15 Himer 阅读(445) 评论(0) 推荐(0) 编辑
摘要: 复合文档的格式详见:http://guooscar.iteye.com/blog/365356复 合文档简单的说就是在一个文件里可以内嵌其他各种文档,这些内嵌的文档还具有目录结构,可以说复合文档格式就是在一个文件里面实现一个文件系统。从逻辑上 说复合文档包含Storage和Stream。Storge相当于我们熟知的操作系统文件系统里的目录,Stream相当于文件。下图就是复合文档的逻辑 示意图。和操作系统的文件系统类似,同一个Storge下的Stream不可以重名,不同Storage下的则可以。复合文档就有另一个概念了,目录(Directory)。Directory包含一个描述Stream和S 阅读全文
posted @ 2013-06-25 14:10 Himer 阅读(713) 评论(0) 推荐(0) 编辑
摘要: 流媒体应用中TS和MP4格式分析应该是封包格式。不能简单理解成MPEG4的简称。要详细解释这个问题,需要提一下MPEG4和.mp4在概念上的区别。一般来说,仅提“MPEG4”,是指一种视频压缩算法。可以把原始画面通过数学运算变换成一组二进制数据,达到有损存储的目的。但是光是这样压缩出来的数据,一般不会直接用于播放。因为它只有一帧接一帧的画面,没有其它一些播放所必须的支持数据,比如说:音频;播放速度信息(一秒应该放多少帧,才和原场景速度一致);以及影音同步数据(确保声音和画面一致,不会出现画面中的人物开了枪,结果枪声晚几秒才出现这种情况)等等。要把一个场景记录成可以播放的格式,除了把画面逐帧压缩 阅读全文
posted @ 2013-05-22 15:43 Himer 阅读(2476) 评论(0) 推荐(0) 编辑
摘要: FFMEPG:配置开发环境一般没问题,最后非常可能是这个原因http://stackoverflow.com/questions/14969437/lnk-2019-unresolved-symbol-ffmpeg因为是C++使用了C开发的库,加入extern "C"{ #include"XX"}SDL:在vs2008没问题,VS2003比较恶心,LInk error:"unresolved external symbol __alloca_probe_16"。这时候是库版本问题,使用下面的这个:SDL-devel-1.2.13htt 阅读全文
posted @ 2013-05-20 10:40 Himer 阅读(241) 评论(0) 推荐(0) 编辑
摘要: 经过对SIP协议和开源协议栈快半年的研究,我现在终于有点入门了。还记得当时刚刚接触这个敬仰已久的东东的时候,那个头大啊,毕竟它的协议族太大了,每个知识点都可以无限延伸,光是鉴权机制就让我花了不少精力。面对我的是大堆大堆的英文协议和代码,看得我是应接不暇啊~~ 还好挺过来了,下面分享下我的经验吧。首先,推荐几个不错的资源给刚刚接触SIP的朋友们:(1)深圳一位好心的大牛翻译的SIP协议中文版,对于和我一样看英文头晕的人绝对是个好东西啊,网上很多论坛都能下到,找不到的朋友给我发邮件吧,我这资料还是比较全的,呵呵~~;(2)《74 Open Source VoIP Apps》,这个是国外的人总结的, 阅读全文
posted @ 2013-05-15 17:40 Himer 阅读(340) 评论(1) 推荐(0) 编辑
摘要: 11. 用Win32 API编程时,window procedure比较明显,那就是程序员自定义window procedure,但Win32提供了一个API函数DefWindowProc(),缺省的处理要交给它。2. 用MFC,window procedure会复杂一些,先看静态的,就是MFC预注册过的那些类,一句话,MFC替你打点好了window procedure的事。2.1 最抽象的,MFC把window procedure封装了起来,程序员只需"programming by difference",你对哪个消息感兴趣,就建立哪个消息的响应函数。(当然还有虚函数ov 阅读全文
posted @ 2013-05-15 13:23 Himer 阅读(366) 评论(0) 推荐(0) 编辑
摘要: 转自:http://www.codeproject.com/Articles/22642/What-Every-Computer-Programmer-Should-Know-About-WWhen the CRT/C++ Library is linked statically, then all its code is embedded into the resulting executable image. The problem is that internal CRT objects cannot be shared with other CRT instances. The mem 阅读全文
posted @ 2013-05-09 20:42 Himer 阅读(201) 评论(0) 推荐(0) 编辑
摘要: 异或算符的符号表示是⊕,圆圈中间一个加号。运算法则总结两句话就是:异为1,同为0。换言之,1⊕1=0,1⊕0=1。这种运算将在海明码纠错的过程中起到一个什么作用呢?S=a1⊕a2.........an-1⊕an=0,假设其中ak=0,那么当ak由0变为1时,S会怎样变化呢?这里很容易证明,S将由0跳变为1。如果数列中有两位数据发生变化呢?其实两位的话可以刚好抵消,但是这里我们是无需关心的,因为这里我们只讨论海明码纠正一位错的情况!海明码解说开始! 假设要传输的数据是a4a3a2a1,数据位长度为4位,设校验位长度为m,那么应该满足2^m-1>=m+4。解出,m=3。校验位为m位,那么,校 阅读全文
posted @ 2013-04-12 14:18 Himer 阅读(2511) 评论(0) 推荐(0) 编辑