<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Pspio的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Pspio</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Pspio]]></copyright><item><title><![CDATA[冲突域广播域]]></title><link>https://blog.youkuaiyun.com/Pspio/article/details/6689003</link><guid>https://blog.youkuaiyun.com/Pspio/article/details/6689003</guid><author>Pspio</author><pubDate>Mon, 15 Aug 2011 16:50:39 +0800</pubDate><description><![CDATA[http://blog.youkuaiyun.com/lsk_30516/article/details/1545743]]></description><category></category></item><item><title><![CDATA[WM_PAINT WM_ERASEBKGND]]></title><link>https://blog.youkuaiyun.com/Pspio/article/details/6121351</link><guid>https://blog.youkuaiyun.com/Pspio/article/details/6121351</guid><author>Pspio</author><pubDate>Thu, 06 Jan 2011 22:26:00 +0800</pubDate><description><![CDATA[<br /><br />当WM_PAINT不是由InvalidateRect产生时,即由最大化，最小化等产生时，或者移动产生（移动有时只会产生WM_ERASEBKGND消息)系统先发送WM_ERASEBKGND消息,再发送WM_PAINT消息.<br />    如果处理WM_ERASEBKGND消息时返回FALSE，BeginPaint标记pt.fErase 为TRUE,如果处理WM_ERASEBKGND时返回TRUE,BeginPaint标记pt.fErase为FALSE.<br /><br />   ]]></description><category></category></item><item><title><![CDATA[MFC程序的消息处理顺序]]></title><link>https://blog.youkuaiyun.com/Pspio/article/details/6091090</link><guid>https://blog.youkuaiyun.com/Pspio/article/details/6091090</guid><author>Pspio</author><pubDate>Wed, 22 Dec 2010 10:27:00 +0800</pubDate><description><![CDATA[<br />MFC应用程序中处理消息的顺序:<br />1.AfxWndProc() 该函数负责接收消息，找到消息所属的CWnd对象，然后调用AfxCallWndProc<br />2.AfxCallWndProc() 该函数负责保存消息(保存的内容主要是消息标识符和消息参数)供应用程序以后使用，然后调用WindowProc()函数<br />3.WindowProc() 该函数负责发送消息到OnWndMsg()函数，如果未被处理，则调用DefWindowProc()函数<br />4.OnWndMsg()]]></description><category></category></item><item><title><![CDATA[H264-MPEG4——压缩格式的变革]]></title><link>https://blog.youkuaiyun.com/Pspio/article/details/6091071</link><guid>https://blog.youkuaiyun.com/Pspio/article/details/6091071</guid><author>Pspio</author><pubDate>Wed, 22 Dec 2010 10:21:00 +0800</pubDate><description><![CDATA[<br /> h.264 和 mpeg-4 的关系:h.264 /avc ( advanced video coding )标准,是 mpeg-4 的第 10 部分。<br /> mpeg-4的初衷是将dvd质量的图像码流从每秒6兆降低到1.5兆,将高清电视的码流从每秒几十兆降低到6~8兆。要实现这样的编码压缩水平,就要用到一种叫avc(advanced video codec)的技术。国际电联(itu)将这项技术命名为h.264标准,mpeg 把这项技术放到mpeg-4标准里的第10章(part 10)。]]></description><category></category></item><item><title><![CDATA[H264-MPEG4——压缩格式的变革]]></title><link>https://blog.youkuaiyun.com/Pspio/article/details/6091070</link><guid>https://blog.youkuaiyun.com/Pspio/article/details/6091070</guid><author>Pspio</author><pubDate>Wed, 22 Dec 2010 10:21:00 +0800</pubDate><description><![CDATA[ h.264 和 mpeg-4 的关系:h.264 /avc ( advanced video coding )标准,是 mpeg-4 的第 10 部分。 mpeg-4的初衷是将dvd质量的图像码流从每秒6兆降低到1.5兆,将高清电视的码流从每秒几十兆降低到6~8兆。要实现这样的编码压缩水平,就要用到一种叫avc(advanced video codec)的技术。国际电联(itu)将这项技术命名为h.264标准,mpeg 把这项技术放到mpeg-4标准里的第10章(part 10)。这就是mpeg-4和h.]]></description><category></category></item><item><title><![CDATA[DLL导出资源问题的解决]]></title><link>https://blog.youkuaiyun.com/Pspio/article/details/6091054</link><guid>https://blog.youkuaiyun.com/Pspio/article/details/6091054</guid><author>Pspio</author><pubDate>Wed, 22 Dec 2010 10:18:00 +0800</pubDate><description><![CDATA[<br />以前写MFC的DLL的时候，总会在自动生成的代码框架里看到提示，需要在每一个输出的函数开始添加上AFX_MANAGE_STATE(AfxGetStaticModuleState())。一直不明白这样做的含义，也一直没有这样做，而且代码也工作得好好的，所以感觉这好像一句废话。 <br />最近的项目中，需要在DLL里使用MFC生成界面，这才发现一旦资源放在不同的动态库里，而且还和多线程搅和在一起的时候，事情就变得异常的复杂，以前对MFC的一知半解已经不足与应付了。程序莫名的崩溃，莫名的ASSERT]]></description><category></category></item><item><title><![CDATA[float,double等精度丢失问题]]></title><link>https://blog.youkuaiyun.com/Pspio/article/details/5975721</link><guid>https://blog.youkuaiyun.com/Pspio/article/details/5975721</guid><author>Pspio</author><pubDate>Sat, 30 Oct 2010 09:43:00 +0800</pubDate><description><![CDATA[问题提出：12.0f-11.9f=0.10000038，"减不尽"为什么？来自MSDN的解释：http://msdn.microsoft.com/zh-cn/c151dt3s.aspx为何浮点数可能丢失精度浮点十进制值通常没有完全相同的二进制表示形式。 这是 CPU 所采用的浮点数据表示形式的副作用。 
为此，可能会经历一些精度丢失，并且一些浮点运算可能会产生意外的结果。 导致此行为的原因是下面之一：十进制数的二进制表示形式可能不精确。使用的数字之间类型不匹配（例如，混合使用浮点型和双精度型）。为解决此行]]></description><category></category></item><item><title><![CDATA[ OnEraseBkGnd与OnPaint的区别与联系]]></title><link>https://blog.youkuaiyun.com/Pspio/article/details/5946963</link><guid>https://blog.youkuaiyun.com/Pspio/article/details/5946963</guid><author>Pspio</author><pubDate>Sun, 17 Oct 2010 16:59:00 +0800</pubDate><description><![CDATA[<br /><br />在OnEraseBkGnd中,如果你不调用原来缺省的OnEraseBkGnd只是重画背景则不会有闪烁.而在OnPaint里面,由于它隐含的调用了OnEraseBkGnd,而你又没有处理OnEraseBkGnd 函数,这时就和窗口缺省的背景刷相关了.缺省的 OnEraseBkGnd操作使用窗口的缺省背景刷刷新背景(一般情况下是白刷),而随后你又自己重画背景造成屏幕闪动.<br />OnEraseBkGnd不是每次都会被调用的.如果你调用Invalidate的时候参数为TRUE,那么在O]]></description><category></category></item><item><title><![CDATA[Invalidate与UpdateWindow的区别]]></title><link>https://blog.youkuaiyun.com/Pspio/article/details/5946960</link><guid>https://blog.youkuaiyun.com/Pspio/article/details/5946960</guid><author>Pspio</author><pubDate>Sun, 17 Oct 2010 16:57:00 +0800</pubDate><description><![CDATA[<br /><br />Invalidate让客户区无效，处于可以重画的状态，并不会立即重画；UpdateWindow可以立即重画，但是它要先判断客户区是否为空（即是否为无效），不空UpdateWindow不执行，为空才执行重画。<br />Invalidate与UpdateWindow的区别如下：<br />void Invalidate( BOOL bErase = TRUE );<br />该函数的作用是使整个窗口客户区无效。窗口的客户区无效意味着需要重绘，例如，如果一个窗口由非前台窗口变成了前台窗口]]></description><category></category></item><item><title><![CDATA[C/C++中time.h]]></title><link>https://blog.youkuaiyun.com/Pspio/article/details/5946952</link><guid>https://blog.youkuaiyun.com/Pspio/article/details/5946952</guid><author>Pspio</author><pubDate>Sun, 17 Oct 2010 16:51:00 +0800</pubDate><description><![CDATA[1．概念
在C/C++中，对字符串的操作有很多值得注意的问题，同样，C/C++对时间的操作也有许多值得大家注意的地方。最近，在技术群中有很多网友也多次问到过C++语言中对时间的操作、获取和显示等等的问题。下面，在这篇文章中，笔者将主要介绍在C/C++中时间和日期的使用方法.

通过学习许多C/C++库，你可以有很多操作、使用时间的方法。但在这之前你需要了解一些“时间”和“日期”的概念，主要有以下几个：

Coordinated Universal Time（UTC）：协调世界时，又称为世界标准时间]]></description><category></category></item><item><title><![CDATA[内存越界]]></title><link>https://blog.youkuaiyun.com/Pspio/article/details/5902012</link><guid>https://blog.youkuaiyun.com/Pspio/article/details/5902012</guid><author>Pspio</author><pubDate>Thu, 23 Sep 2010 16:03:00 +0800</pubDate><description><![CDATA[<br /> <br />1. 原理分析<br />经常有些新C＋＋程序员问：C＋＋的类的成员个数是不是有限制，为什么我加一个变量后程序就死了？或者说：是不是成员变量的顺序很重要，为什么我两个成员变量顺序换一换程序就不行了？凡此种种之怪现象，往往都是内存访问越界所致。<br /><br />何谓内存访问越界，简单的说，你向系统申请了一块内存，在使用这块内存的时候，超出了你申请的范围。例如，你明明申请的是100字节的空间，但是你由于某种原因写入了120字节，这就是内存访问越界。内存访问越界的后果是：你的写入破]]></description><category></category></item><item><title><![CDATA[Sizeof 使用]]></title><link>https://blog.youkuaiyun.com/Pspio/article/details/5902007</link><guid>https://blog.youkuaiyun.com/Pspio/article/details/5902007</guid><author>Pspio</author><pubDate>Thu, 23 Sep 2010 16:00:00 +0800</pubDate><description><![CDATA[<br />对于很多C++新手而言，对象或变量的sizeof信息总是让人捉摸不透，以下程序列举了几个典型的sizeof信息，希望能解答大家在使用sizeof时的疑问。<br />在列举这几个例子前需要说明以下几点：<br />1、在Win32平台上，指针长度都是4字节，char*、int*、double*如此，vbptr(virtual base table pointer)、vfptr(virtual function table pointer)也是如此；<br />2、对于结构体(或类)，编译器会自动]]></description><category></category></item><item><title><![CDATA[DirectShow编程（3.8） - 关于DirectShow - 插件发布者（Plug-in Distributors）  ]]></title><link>https://blog.youkuaiyun.com/Pspio/article/details/5901999</link><guid>https://blog.youkuaiyun.com/Pspio/article/details/5901999</guid><author>Pspio</author><pubDate>Thu, 23 Sep 2010 15:54:00 +0800</pubDate><description><![CDATA[<br /><br />3.8. 插件发布者（Plug-in Distributors）<br />    Plug-in Distributors(PIDs)是扩展filter graph 
manager的一种方法。一个PID是filter graph manager在运行时聚合的一个COM对象。应用程序通过filter graph 
manager来进入PID。<br />    当filter graph manager被要求查询一个它不支持的接口时，它会搜索注册表项：<br />       ]]></description><category></category></item><item><title><![CDATA[DirectShow编程（3.7） - 关于DirectShow - Graph动态重建（Dynamic Graph Building）  ]]></title><link>https://blog.youkuaiyun.com/Pspio/article/details/5901998</link><guid>https://blog.youkuaiyun.com/Pspio/article/details/5901998</guid><author>Pspio</author><pubDate>Thu, 23 Sep 2010 15:53:00 +0800</pubDate><description><![CDATA[<br /><br />3.7. Graph动态重建（Dynamic Graph Building）<br />    
如果你需要修改一个已经存在的filter 
graph，你可以停止，修改后再重新启动它。这通常是一种最佳的解决方法。但是，在某此情况下，你可能需要在一个graph处于运行状态时来修改它，比如：<br />    
＊应用程序在进行视频回放时需要插入一个(视频滤镜filter)Video effect filter；<br />    ＊source 
filter在播放的过程中改]]></description><category></category></item><item><title><![CDATA[DirectShow编程（3.6） - 关于DirectShow - DirectShow中的时间和时钟 ]]></title><link>https://blog.youkuaiyun.com/Pspio/article/details/5901996</link><guid>https://blog.youkuaiyun.com/Pspio/article/details/5901996</guid><author>Pspio</author><pubDate>Thu, 23 Sep 2010 15:53:00 +0800</pubDate><description><![CDATA[<br />3.6. DirectShow中的时间和时钟<br />    
这一节主要概述DirectShow体系中时间和时钟。<br />3.6.1. 参考时钟<br />    Filter Graph 
Manager的一个功能，能够以同一个时钟来同步所有在graph中的filter，称作参考时钟（reference clock）。<br />    任何暴露了IReferenceClock接口的对象都能够作为一个参考时钟来使用。参考时钟可以由一个DirectShow 
filter来提供，例]]></description><category></category></item><item><title><![CDATA[DirectShow编程（3.5） - 关于DirectShow - DirectShow中的事件通告 ]]></title><link>https://blog.youkuaiyun.com/Pspio/article/details/5901995</link><guid>https://blog.youkuaiyun.com/Pspio/article/details/5901995</guid><author>Pspio</author><pubDate>Thu, 23 Sep 2010 15:52:00 +0800</pubDate><description><![CDATA[<br /><br />3.5 DirectShow中的事件通告<br />    这一节主要描述在directshow filter 
graph中事件是怎样发生的，以及应用程序如何接收事件通告并响应它们。<br />3.5.1 概述<br />    
一个filter通过发送一个事件通来通知filter graph 
manager某个事件已经发生。这些事件可以是一些预知的事件比如流结束事件，也可以是一些异常如render流时失败。一部分事件由filter graph 
manager自己处理]]></description><category></category></item><item><title><![CDATA[DirectShow编程（3.4） - 关于DirectShow - Filter Graph中的数据流 ]]></title><link>https://blog.youkuaiyun.com/Pspio/article/details/5901994</link><guid>https://blog.youkuaiyun.com/Pspio/article/details/5901994</guid><author>Pspio</author><pubDate>Thu, 23 Sep 2010 15:51:00 +0800</pubDate><description><![CDATA[<br /><br />3.4. Filter Graph中的数据流<br />    这一节主要描述媒体数据是如何在filter 
graph中流动的。如果你只是为了编写DirectShow应用程序，你不需要知道这些细节，当然，知道这些细节对于编写directshow应用程序仍然是有帮助的。但是如果你要编写directshow 
filter，那么你就必须掌握这部分知识了。<br />3.4.1. DirectShow数据流概述<br />    
在这一部分先粗略地描述一下DirectShow中数]]></description><category></category></item><item><title><![CDATA[DirectShow编程（3.3）- 关于DirectShow - 构建Filter Graph ]]></title><link>https://blog.youkuaiyun.com/Pspio/article/details/5901992</link><guid>https://blog.youkuaiyun.com/Pspio/article/details/5901992</guid><author>Pspio</author><pubDate>Thu, 23 Sep 2010 15:50:00 +0800</pubDate><description><![CDATA[<br /> <br />3.3. 构建Filter Graph<br />3.3.1. 用于构建Graph的组件<br />    
DirectShow提供了一系列用于构建filter graph的组件，包括：<br />    ＊Filter Graph 
Manager。这个对象用于控制filter 
graph，支持IGraphBuilder、IMediaControl和IMediaEventEx等许多接口。所有的directshow应用程序都需要在某些地方用到这个对象，虽然在有些情况下，是]]></description><category></category></item><item><title><![CDATA[DirectShow编程（3.2）- 关于DirectShow - Filter Graph和它的组件 ]]></title><link>https://blog.youkuaiyun.com/Pspio/article/details/5901988</link><guid>https://blog.youkuaiyun.com/Pspio/article/details/5901988</guid><author>Pspio</author><pubDate>Thu, 23 Sep 2010 15:48:00 +0800</pubDate><description><![CDATA[<br /><br />3.2. Filter Graph和它的组件<br />    
这一节描述了DirectShow的主要组件，为DirectShow应用程序和DirectShow 
Filter开发者提供一个介绍。应用程序开发者可以忽略掉很多底层部分，但是，了解底层对于理解DirectShow架构还是很有帮助的。<br />3.2.1. 
关于DirectShow Filter<br />    
DirectShow使用一个模块化的架构，每个处理过程都由一个叫做filter的COM对象来实]]></description><category></category></item><item><title><![CDATA[Microsoft CryptoAPI加密技术（二） ]]></title><link>https://blog.youkuaiyun.com/Pspio/article/details/5901976</link><guid>https://blog.youkuaiyun.com/Pspio/article/details/5901976</guid><author>Pspio</author><pubDate>Thu, 23 Sep 2010 15:45:00 +0800</pubDate><description><![CDATA[<br /> <br />Microsoft CryptoAPI加密技术（二）<br />作者:Cuick<br />下载本文示例源代码<br /><br />上次我们讲了Microsoft 
CryptoAPI的构成以及会话密钥的使用。接下来我们将看一下公私密钥对的使用、HASH算法、数字签名等技术。<br />一、 
公用密钥加密技术<br /><br />公用密钥加密技术使用两个不同的密钥：公钥和私钥。私钥必须安全的保管好不能被外人知道，而公钥可以告诉任何人，只要他需要。通常公钥是以数字证书的形式]]></description><category></category></item></channel></rss>