自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(38)
  • 资源 (4)
  • 收藏
  • 关注

原创 C# COM组件注册

<br /><br /> <br />为了C# COM组件的注册,浪费了我一天半的时间。现把经验分享出来。<br /> <br />C# COM组建的注册过程:<br /> <br />用Regsvcs /c DllName.dll注册新的COM组件,发现已有该组件则报错。<br />用Regsvcs /fc DllName.dll注册新的COM组件,发现已有该组件则覆盖。<br />用Regsvcs /u DllName.dll卸载COM组件。<br />Regsvcs.exe在Microsoft.NET

2010-12-30 10:35:00 5469 2

原创 隐马尔可夫模型应用于人脸识别

<br /><br />对于HMM应用于人脸识别,以下是我的心得。<br />先给出一张5X5的图片,<br />[100,101,102,103,104]  额头,<br />[200,201,202,203,204]  眼睛<br />[300,301,302,303,304]  鼻子<br />[400,401,402,403,404]  嘴巴<br />[500,501,502,503,504]  下巴<br /> <br />假设,第一行描述了额头的信息,第二行描述了眼睛的信息,第三行描述了鼻子的

2010-12-20 15:32:00 1012 1

原创 一个崭新的内存泄漏检测方法

一个崭新的内存泄漏检测方法

2010-09-30 16:06:00 342

原创 视频传输

视频传输

2010-08-23 17:59:00 499

原创 程序内存膨胀问题

发现自己公司的程序执行一段时间以后,会内存膨胀。后来利用截取CallStack的方法发现,是1b0b31fd:orinal55中Sleep造成。用Windbg在1b0b31fd设个断点,发现这是MsJet40.dll一个Error处理函数。所以,确定问题应该是SQL语句出错导致。

2010-04-21 14:58:00 334

原创 驱动关机卡死的问题

1、自己编写了一个键盘过滤驱动,启动驱动以后,关闭操作系统,   操作系统无法关闭。用WINDBG可以发现“Waiting On:...SetPower-shutdown”   信息。   原因是:   驱动没有处理IRP_MJ_POWER命令。   正确如下:   DriverObject->MajorFunction[IRP_MJ_POWER] = PowerProc;   #pragma P

2010-02-27 12:03:00 1677 1

原创 断电导致的BUG

1、断电导致的BUG——程序无法启动,甚至连WINMAIN函数都没有执行。原因:DBGHEL.DLL被损坏。解决方案:(1)重启。               (2)拷贝正确的DBGHEL.DLL。     解决该类问题,可以参考以下转载文章。  设有一个Win32下的可执行文件MyApp.exe,这是一个Win32应用程序,符合标准的PE格式。MyApp.exe的主要

2010-01-26 11:12:00 264

原创 径向基函数神经网络

一、理解正交最小二乘。(今天太晚了,改天再写。)

2010-01-20 23:05:00 314

原创 Release版下的问题

1、ASSERT引起的BUG。   如,   Release版Search单路播放有问题。(是ASSERT断言导致。因为Release版会把ASSERT断言的表达式去掉,于是"ASSERT(WaitSingleObject(...))"表达式被删除,导致程序没有等待播放器结束又开始播放。)2、变量未初始化导致的BUG。   如,计算Stretch板卡视频帧时间时,有两个变量,      

2009-12-30 15:52:00 198

原创 CRT检测内存泄漏技巧以及注意问题

 用CRT检测内存泄漏的技巧:(1)使用以下宏来对某CPP文件的内存泄漏进行检测。VC2005:#ifdef _DEBUG#define new new(_NORMAL_BLOCK, __FILE__, __LINE__)#undef THIS_FILEstatic char THIS_FILE[] = __FILE__;#endif或VC6#ifdef _DEBUG#define new DEB

2009-11-24 15:46:00 442

原创 Manifest使用经验

 关于VC2005的一个变态的问题。目前在多个地方被这个问题困扰:a、采用MFC Shared DLL方式编译出来的程序拷贝到测试部门会出现问题。所以只能采用静态DLL方式,但这导致                 DLL变得太大。b、内存泄漏、溢出检测时,需要使用MSVCR80.dll的函数,但是采用LoadLibrary的方式也会出现这个问题。         这个问题是:程序报R60

2009-11-18 11:30:00 1686

原创 Call指令详解

 一、FF/2,间接相对寻址(指令长度:2、3、6字节)(1)FF 55 F4推理:FF:OpcodeMod/RM:01010101=>01+010+101=>            mod = 01,定义 [register + disp8],有8位displacemnet 偏移值。            reg = 010,表示FF/2            r/m = 101,ebp寄存器F

2009-09-06 12:57:00 2787

原创 HOOK HeapAlloc注意的问题:

1、怎么调试Hook到X进程的动态库D。(1)用WINDBG.exe调试X进程,此时动态库D还没有进驻X进程。(2)用Hook工具把动态库D Hook到进程X里。(3)注意要在D动态库需要中断的地方插入以下代码:__asm{int 3}(4) 当Hook成功后,D动态库运行到INT 3处时,WINDBG.exe会自动定位到动态库D中断的代码处。2、汇编注意的问题:(1)在__declspec(

2009-08-28 14:42:00 516

原创 解BUG的一些心得

目前,软件BUG一直是程序员的梦魇,但其实只要掌握一定的技巧和基本知识, 是可以轻松解决掉这些BUG的。 以下一些BUG是在程序开发中相对比较棘手的问题: 1、程序跑一段时间以后会越跑越慢。 2、程序无缘无故Crash。 3、程序内存越变越大,直至程序Crash。4、程序跑着突然死掉了。  一、定位线程。以上解决问题的关键是先定位到程序变慢的代码,对于第1、4点,可

2009-08-22 19:21:00 491

原创 计算代码运行时间

代码执行时间的计算在以下场合需要用到:1、代码出现运行瓶颈,需要找到瓶颈所在。2、程序运行一段时间以后变慢,需要找到变慢的代码。 出于以上目的,你或许可以使用代码时间测试工具(如Rational Quantify)。但,这些工具可能运行速度太慢,让你心烦。而且,Release给客户的程序,有时会出现以上问题,这时你不可能还用Rational Quantify来运行程序。 

2009-08-19 20:04:00 1197

原创 多路h264回放方案

h264/SVC 编解码,让普通PC实现16路视频数据回放成为可能。普通PC是能支持16CIF视频数据回放的,所以如果这16路视频数据都是D1的话,则利用SVC编码原理从D1视频数据中提取CIF视频数据,再解码回放。

2009-06-16 22:23:00 413

原创 虚拟内存应用

虚拟内存的重要性体现在下面几个方面:1、虚拟内存可以映射到硬盘,以达到扩展内存的作用,     这样系统在物理内存已经用满的情况下,就不会因为没有内存可用,     而导致系统崩溃。2、虚拟内存是以进程空间为寻址空间的,一般情况,进程用户模式下的寻址空间    是2G,为了避免内存的碎片,可以把2G进程空间划分为若干个块,对于长度分配   一样的内存处于同一个块,这样就因为

2009-06-16 21:42:00 250

原创 H264视频数据多路播放大内存分配问题

 问题描述:现在因为H264本身的原因,一路需要维护30帧的YUV数据(因为一个I帧循环30帧。)   为了避免当这30帧数据播放完后,程序会卡的问题,其实需要2个30帧的YUV数据(一个当缓冲),   也就是60帧YUV数据。那一路(D1)总共的最大内存为:720×576×1.5 × 60 = 36M,因为要求16     路同时播放,因此需要36 × 16  = 576M。可见分配如此大的

2009-06-16 16:54:00 549

原创 Rational Quanlity使用体验

1、源码级性能统计。(1)实现源码级性能统计,首先必须在Line模式下,才能使用Annotated Source,然后就可以使用右键->switch to->Annotated Source跳转到函数对应的Source code。 (2)在“(1)”的基础上,当然还需配置对应的PDB以及Source code。首先,必须在Selected Modules中选择对应的模块。例如,如果要调

2009-06-11 23:38:00 254

原创 串行化IO

驱动串行化IO的理解一、对于IoStartParket的理解:VOID NTAPI IoStartPacket(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp,                        IN PULONG Key, IN PDRIVER_CANCEL CancelFunction){    BOOLEAN Stat;    KI

2009-06-02 17:58:00 965 1

原创 怎么正常结束多媒体定时器

怎么正常结束多媒体定时器。一、采用TIME_CALLBACK_EVENT_SET。#define PLAYERTICK_Hclass _DS_EXT_DVRBASE_CLASS CTickUser{ public: CTickUser(); virtual ~CTickUser(); void SetSpeed(int nSpeed); void SetMiniSecs(int nMinise

2009-05-27 17:00:00 516 1

原创 线程使用率监控

有时候需要知道进程各个线程的CPU使用率,以平衡这些线程。那怎么知道线程的CPU使用率呢?以下是本人编写的类:#ifndef _WZ_THREADCONTROL_H#define _WZ_THREADCONTROL_H struct ThreadInfo{ char szThreadName[15];    HANDLE hThread; int nPercentCPUUsag

2009-04-23 10:46:00 733

原创 try catch

 下面情况只能try catch,而不用if else.一、如fun(){   fun1();}fun1(){   fun2();}fun2(){   fun3();}fun4(){   }fun执行了一个连贯动作,如果此时在fun4出现错误,整个连贯动作应立即取消,用if else的话,需逐层返回,灵活性很差。用try catch马上可以跳到fun函数的catch中,

2009-03-23 15:36:00 604

原创 多线程问题

 1、UI的多线程问题。 (1)UI线程和工作线程 UI线程:当在某线程中使用窗口操作API时,就会为该线程创建一个UI线程。这UI线程负责把队列消息放到对应的消息队列中,该UI线程无法由用户使用。如: int APIENTRY WinMain(HINSTANCE hInstance,                     HINSTANCE hPrevInstance,            

2009-01-01 01:00:00 424

转载 FREfast使用

   转载:C++代码静态分析工具-Prefast <!--<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"xmlns:dc="http://purl.org/dc/elements/1.1/"xmlns:trackback="http://madskills.com/public/xml/r

2008-12-28 00:11:00 337

原创 车牌识别

 车牌识别的技术难点包括(以下是自己的理解,不代表权威,大家不要尽信):1、车牌定位。      方法一:利用车牌位置跳变点比较丰富的特点可以找到车牌可能的区域,这些区域中有些是非车牌区域,可根据车牌自身尺寸的比例或它和整幅图的比例来排除非车牌区域。     方法二:投影法。2、车牌识别。     方法一:BP神经网络,它通过对字符的训练可以比较准确地识别不同的字符。这里的训练

2008-12-21 13:33:00 864

原创 UI规划

一、进行UI规划的原因。1、由于现在程序大多采用Microsoft的窗口机制,各模块之间密切相关,牵一发而动全身。如,当想从界面中更改某界面功能时,会导致一系列程序代码需要修改。    当想添加或者抽离某功能界面时,需要花很多时间去整理代码。2、程序没有美感,很混乱。二、UI规划步骤。1、把UI划分为几个子部分,划分的原则是:划分以后,UI各子部分的耦合性比较弱并且合理。2、对各子

2008-12-19 11:54:00 317

转载 有用网站

 个人数字图书馆:http://epub.cnki.net/grid2008/library/Template01/DigitalPersonal.aspx?targetname=wzchen2008,该网站可下载最新技术资料。

2008-12-17 13:08:00 157

原创 BoundsChecker使用

 转载:http://www.cnitblog.com/qiuyangzh/archive/2005/07/14/975.html1 前言我在本文中详细介绍了测试工具NuMega Devpartner(以下简称NuMega)的使用方法。NuMega是一个动态测试工具,主要应用于白盒测试。该工具的特点是学习简单、使用方便、功能有效。NuMega共有三个独立的子功能——BoundsCh

2008-12-12 23:48:00 16270 7

原创 Rational Purify使用

  下面的代码集中显示了上述问题的典型例子: 1 #INCLUDE 2 USING NAMESPACE STD; 3 INT MAIN(){ 4 CHAR* STR1="FOUR"; 5 CHAR* STR2=NEW CHAR[4]; //NOT ENOUGH SPACE 6 CHAR* STR3=STR2; 7 COUT1、 COM: COM API/INTERFACE FAILURE CO

2008-12-11 14:00:00 819

原创 rational rose & rational purify & rational quanlity 安装

 1、下载Rational suite,包括:b-irscd1, b-irscd2, b-irscd3。2、下载Rose破解包rose2003crack(包括flexlm,license.dat,lmgrd.exe, rational.exe)。3、下载合适的shw32.dll。4、安装Rose。注意:rose2003.exe安装程序解压后不要运行C:/Program Files/

2008-12-10 15:44:00 3247 6

原创 调试和优化随笔

1.发现Assert断言出错,此时知道被断言的指针值为NULL,怎么知道到底在哪给它赋NULL呢?(1)用VC->breakpoint->data->enter the expression...     注意:如果出现cannot set break point...,必须先调试进入表达式变量所在类或函数,再编辑。    但是对于频繁改变的变量,调试速度会很慢,这种方法行不通,怎么办呢?(2)在

2008-12-06 11:20:00 2242

原创 纯G.711音频文件播放

 作者:wezer 博客:http://writeblog.csdn.net/PostList.aspx 下面程序实现纯G.711文件的播放。 所谓纯G.711文件在这定义为:只有G.711的音频数据,没有多余的其它信息数据。 Alaw和Ulaw是编码方式,可以任选一种,Start可以打开磁盘里任一个双声道G.711文件,Stop停止播放。   

2008-11-07 20:12:00 3167 4

原创 H264 在一般PC上的多路同时解码

对于H264编解码,(一)如果是D1(720×576)分辨率的话,在一般PC上只能支持大约1~5路(跟硬件配置有关),那如果需要同时播放16路,而且CPU利用率不能太大,怎么办?(硬件资源不能改变。)假设H264 I 帧周期帧情况如下: 帧类型:I  P  B  P  B  P  B  P ... I  P  B  P  B  P  B  P 序号:  1  2  3  4  5  6 

2008-11-04 22:53:00 629

原创 控件自绘技术

对于控件自绘技术,有些程序员不是很注重,因为如果自己注册创建一个窗口,同样可以做成如控件一样效果。 但其实控件自绘有以下好处:(1)降低工作量,控件提供了一些基本功能,只要在这些功能基础上进行修改,可以很快实现所需的界面元素。(2)减少程序bug。如果自己创建窗口,那所有功能需自己实现,必须考虑周到,稍有疏忽,就导致bug跳出。(3)从系统设计角度来看,它可以使界面美化层和功能

2008-11-04 22:01:00 655

原创 ComboBox自绘

 ComboBox,即组合框,由Edit、Button、ListBox组成。下面程序实现自绘ComboBox,效果如图所示   #if !defined(AFX_CBEX_H__DB51125A_4B4E_45A0_A855_854D850EBE1A__INCLUDED_)#define AFX_CBEX_H__DB51125A_4B4E_45A0_A855_854D850

2008-11-04 21:34:00 3540 2

原创 怎么把采集到的影像数据显示出来,并且绘制字幕并贴logo图?

第一种方法:为显示设备创建内存兼容DC,然后在内存DC中绘制影像,同时叠加字幕、位图,再拷贝到设备DC进行显示。  第二种方法:利用DirectDraw技术,原理是:为每幅图片创建离屏表面1,创建用于叠加字幕、位图的离屏表面2,把影像数据拷贝至离屏表面1上,然后获取离屏表面1的DC,对它进行字幕、位图叠加,再放到离屏表面2,最后一次性拷贝到主表面。可完成所需功能。 总结

2008-11-03 22:38:00 413

转载 directsound抓取麦克风PCM数据封装类

 网上有很多方法从麦克风读取PCM数据,不想一一举例。只是在这里发布一个我自己写的directsound的麦克风PCM数据采集类,通过 它,可以很方便的利用directsound技术把麦克风的数据采集到,而且本身,开发者不必太在意自己会不会directsound编程,可以很方便的 让开发者的主要精力集中于程序本身,而不是细节。这个是头文件:#pragma once#ifndef _

2008-11-03 15:26:00 706

协助你解决程序的BUG动态库

这是一个动态库,可以通过LoadLibrary的方法来加载它,一旦加载会在当前目录产生一个ERRORLOG文件夹,你的程序如果有错误的话就会把错误堆栈写到ERRORLOG中。注意你的程序要提供PDB文件。

2011-06-30

XML访问动态库源码

编译完该源码会产生一个动态库,通过该动态库可以操作XML文件。

2011-06-30

TreeCtrl控件的自绘

自己做的树形控件实现完全树形控件自绘,易懂,易修改。

2011-06-30

SoundTestForG711

该源码用DirectSound实现播放G711编码文件,支持ALAW、ULAW两种编码,可以在这基础上加强音频播放的其他功能。希望对您有用。

2009-05-21

空空如也

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

TA关注的人

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