DoubleLi

qq: 517712484 wx: ldbgliet

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
上一页 1 ··· 451 452 453 454 455 456 457 458 459 ··· 474 下一页

2012年8月22日

摘要: 很多的界面设计都需要有Tip提示,下面描述一下Tip的简单使用方法: 1. 首先要New一个CToolTipCtrl的对象m_pContentTip 2. 调用CToolTipCtrl的create函数,指定其父窗口。可以为某个控件,也可以为this。一般设为this。m_pContentTip->Create( this, TTS_ALWAYSTIP );3. AddTool。此函数是设置与某个控件关联的Tip文本。此处可以为多个控件添加不同的提示信息。 m_pButtonTip->AddTool( GetDlgItem( 控件ID ), 文本 ); //#add 一定要用Add 阅读全文
posted @ 2012-08-22 17:35 DoubleLi 阅读(480) 评论(0) 推荐(0)

2012年8月16日

摘要: 今天在网上看到一篇VC项目管理的文章,感觉非常有用。特别是对大、中型项目的规范化、条理化管理非常有帮助,特转贴这里。VC 2005 解决方案的目录结构设置和管理Roger (roger2yi@gmail.com)一个中等规模的解决方案通常都会包含多个项目,其中一些项目产出静态库,一些产出动态库,一些用于单元测试,还有的产出最终的应用程序执行档。除此以外,根据项目的需求,还会使用一些第三方的库。所以为解决方案设置一个合理的目录结构,不但可以使得代码管理更井井有条,项目成员之间也更容易相互配合,更重要的是能够使得最终应用程序的安装包制作,源代码打包发布和转移变得十分容易。解决方案与项目:从VC6之 阅读全文
posted @ 2012-08-16 14:24 DoubleLi 阅读(528) 评论(0) 推荐(0)

2012年8月15日

摘要: HANDLE hMutex;hMutex = ::CreateMutex(NULL, FALSE, NULL);::WaitForSingleObject(hMutex, INFINITE); // 1::WaitForSingleObject(hMutex, INFINITE); // 2好多初学者都认为,设置为FALSE就是没有获得获得信号。。 其实这是错误的。真确的理解是:CreateMutex()函数的第二个参数是FALSE,表示刚刚创建的这个Mutex不属于任何线程也就是没有任何线程拥有他,一个Mutex在没有任何线程拥有他的时候,他是处于激发态的, 所以处于有信号状态。当你调用:: 阅读全文
posted @ 2012-08-15 18:01 DoubleLi 阅读(5041) 评论(0) 推荐(1)

摘要: 如何终止线程的运行(C/C++)想要终止线程的运行,可以使用以下方法:1、线程函数返回(最好使用该方法)。2、通过调用ExitThread函数,线程将自行撤消(最好不使用该方法)。3、同一个进程或另一个进程中的线程调用TerminateThread函数(应避免使用该方法)。4、ExitProcess和TerminateProcess函数也可以用来终止线程的运行(应避免使用该方法)。下面将详细介绍终止线程运行的方法:1-4,并说明线程终止运行时会出现何种情况:5。1、线程函数返回始终都应该将线程设计成这样的形式,即当想要线程终止运行时,它们就能够返回。这是确保所有线程资源被正确地清除的唯一办法。 阅读全文
posted @ 2012-08-15 15:40 DoubleLi 阅读(34179) 评论(0) 推荐(1)

2012年8月14日

摘要: 在VC编程中常常碰到的.lib文件有一个需要注意的地方是:静态库——函数和数据被编译进一个二进制文件(扩展名问.lib)。在使用静态库的情况下,在编译连接可执行文件时,连接器从库中复制这些函数和数据并把他们和应用程序的其他模块组合起来创建最终的可执行文件(.exe)文件,当发布产品时,只需要发布这个可执行文件,并不需要发布被使用的静态库。动态库——在使用动态库时,往往提供两个文件:一个引入库(.lib)文件和一个DLL(.dll)文件。虽然引入库的后缀名也是".lib",但是,动态库的引入库文件和静态库文件有着本质的区别。对一个dll来说,器引入库文件(.lib)包含该DL 阅读全文
posted @ 2012-08-14 19:48 DoubleLi 阅读(3961) 评论(3) 推荐(0)

摘要: 原因:#pragma comment (lib,"xxx.lib")//默认和引用的CPP文件在一个文件夹中解决方法1:将xxx.lib和调用pragma comment的源文件放在一个目录(注意是调用它的源文件,不是头文件)。解决方法2:也可以在xxx.lib前加上全路径名如:#pragma comment(lib, "c:\\windows\\system32\\xxx.lib")。解决方法3:修改项目属性中,配置属性--》连接器-->常规--》附加库目录 中加上xxx.lib所在目录。解决方法4:工具--》选项--》项目和解决方案--》vc+ 阅读全文
posted @ 2012-08-14 17:33 DoubleLi 阅读(25097) 评论(0) 推荐(0)

2012年8月13日

摘要: 学了264有将近3个月有余,好多时候都在学习老毕的书和反复看JM86的代码,最近才找到264分析两大利器:264VISA和Elecard StreamEye Tools。不由得感叹,恨不逢同时。 简单的说下这两个软件: 264visa 强力的h264实时分析工具 ,能分析各种场合下的h264资源,适用于h264开发者,学习者。在图像分析上,VISA还是比EYE更加厉害,它包括了滤波前以及预测残差等等数据的输出。 下面来说下另一款软件:Elecard StreamEye ToolsElecard StreamEye Suite是一套用于专业视频压缩领域的功能强大的工具 ,能够帮助用户进行有效的. 阅读全文
posted @ 2012-08-13 19:05 DoubleLi 阅读(6489) 评论(0) 推荐(1)

摘要: MPEG-1压缩的基本思想:帧内压缩和帧间压缩。其次,时间相关性的统计分析:统计的结果表明,在间隔1~2帧的图像中,各像素只有10%以下的点,其亮度差值变化超过2%,而色度差值的变化只有1%以下。采用的压缩方法: 分组:把几帧图像分为一组(GOP),为防止运动变化,帧数不宜取多。1.定义帧:将每组内各帧图像定义为三种类型,即I帧、B帧和P帧;2.预测帧:以I帧做为基础帧,以I帧预测P帧,再由I帧和P帧预测B帧;3.数据传输:最后将I帧数据与预测的差值信息进行存储和传输。I帧:帧内编码帧I帧特点:1.它是一个全帧压缩编码帧。它将全帧图像信息进行JPEG压缩编码及传输;2.解码时仅用I帧的数据就可 阅读全文
posted @ 2012-08-13 17:30 DoubleLi 阅读(4766) 评论(0) 推荐(0)

摘要: 2011-11-28 9:45http://www.360doc.com/content/11/0718/17/474846_134326279.shtmlmpeg4的每一帧开头是固定的:00 00 01 b6,那么我们如何判断当前帧属于什么帧呢?在接下来的2bit,将会告诉我们答案。注意:是2bit,不是byte,下面是各类型帧与2bit的对应关系: 00: I Frame 01: P Frame 10:B Frame 为了更好地说明,我们举几个例子,以下是16进制显示的视频编码: 00 00 01 b61034 78 97 09 87 06 57 87 …… I帧 00 00 0... 阅读全文
posted @ 2012-08-13 15:56 DoubleLi 阅读(915) 评论(0) 推荐(1)

摘要: 转自:http://blog.csdn.net/abcjennifer/article/details/6577934视频压缩中,每帧代表一幅静止的图像。而在实际压缩时,会采取各种算法减少数据的容量,其中IPB就是最常见的。Intra coded frames, Predicted pictures, and Bi-directional predictive pictures。I帧是关键帧,属于帧内压缩。就是和AVI的压缩是一样的。 P是向前搜索的意思。B是双向搜索。他们都是基于I帧来压缩数据。I帧表示关键帧,你可以理解为这一帧画面的完整保留;解码时只需要本帧数据就可以完成(因为包含完整画面 阅读全文
posted @ 2012-08-13 15:23 DoubleLi 阅读(4737) 评论(0) 推荐(1)

上一页 1 ··· 451 452 453 454 455 456 457 458 459 ··· 474 下一页