自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

pizicai105

hellosz@163.com

  • 博客(25)
  • 收藏
  • 关注

转载 高精度计数器

对关注性能的程序开发人员而言,一个好的计时部件既是益友,也是良师。计时器既可以作为程序组件帮助程序员精确的控制程序进程,又是一件有力的调试武器,在有经验的程序员手里可以尽快的确定程序的性能瓶颈,或者对不同的算法作出有说服力的性能比较。           在Windows平台下,常用的计时器有两种,一种是timeGetTime多媒体计时器,它可以提供毫秒级的计时。但这个精度对很多应用场合而言还是太

2009-11-30 11:29:00 1369 1

转载 OutputDebugString

在调试状态下,VC 等调试器可以捕捉程序中的 OutputDebugString 输出的信息。其实 OutputDebugString 就是往一片共享影射的内存中写入了一段数据,并创建了两个 Enevt,指明数据写入事件被触发。在非调试状态下,我们也可以通过编程实现捕捉 OutputDebugString 的输出。下面的代码演示了如何获取这些信息: DWORD WINAPI CDebugTra

2009-11-27 14:04:00 708

原创 纯资源DLL遇到的问题汇总

1、纯资源DLL,注意需要将与资源无关的文件删除,否则可能出现在IDE里看不到最新的资源     这样做可能会编译不过,出现__DllMainCRTStartup@12错误,在DEBUG中加入msvcrtd.lib,RELEASE中加入msvcrt.lib即可 2、软件不要Dependency资源DLL,否则出现寻找不到资源.lib,其实是不需要lib的 3、LoadStrin

2009-11-17 11:50:00 742

转载 [转]FFPLAY原理

 概要电影文件有很多基本的组成部分。首先,文件本身被称为容器Container,容器的类型决定了信息被存放在文件中的位置。AVI和Quicktime就是容器的例子。接着,你有一组流,例如,你经常有的是一个音频流和一个视频流。(一个流只是一种想像出来的词语,用来表示一连串的通过时间来串连的数据元素)。在流中的数据元素被称为帧Frame。每个流是由不同的编码器来编码生成的。编解码器描述了实际的数据是如

2009-11-13 15:14:00 3347 1

原创 线程本地存储(TLS)

#include #include #define THREADCOUNT 4 DWORD dwTlsIndex; VOID ErrorExit(LPTSTR); VOID CommonFunc(VOID) { LPVOID lpvData;

2009-11-13 14:49:00 480

原创 成员函数回调

class CCBObject{};typedef void (CCBObject::*IT_CB_DownLoadRecFile) (char* sName, int iRang, int iPos);IT_DownloadRecFile( (CCBObject*)this, (IT_CB_DownLoadRecFile)CConfigDownloadDlg::Downl

2009-11-12 11:34:00 395

原创 提高内存池的并发效率

 正常情况下,使用一个链表保存多个内存块地址,GetFreeBuf()时锁一下链表FreeBuf()时锁一下链表以保证链表资源共享不产生冲突 但是假如想再提高效率要怎么办呢不同的操作系统,临界区效率不一样假如锁与解锁效率比较低的话,我们可以使用链表头锁(HeadLock)和链表尾锁来优化(TailLock) 简单讲就是GetFreeBuf()时调用HeadL

2009-11-07 11:58:00 443

转载 返回内部静态成员的陷阱inet_ntoa()

背景在我们用C/C ++开发的过程中,总是有一个问题会给我们带来苦恼。这个问题就是函数内和函数外代码需要通过一块内存来交互(比如,函数返回字符串),这个问题困扰和很多开发人员。如果你的内存是在函数内栈上分配的,那么这个内存会随着函数的返回而被弹栈释放,所以,你一定要返回一块函数外部还有效的内存。这是一个让无数人困扰的问题。如果你一不小心,你就很有可能在这个上面犯错误。当然目前有很多解决方法,如果你

2009-11-06 15:55:00 639

原创 软件多国语言的实现方式

 要实现多国语言切换功能不外乎以下几种方式:1、将资源DLL化,将所有不同的语言资源打包成一个DLL2、将资源DLL化,不同语言资源分别打包,FLASHGET就是这样做3、使用XML或INI记录软件中所有字符串,并为其分配唯一值 目前监控客户端使用的是第二种方式,并将动态字符串放到string table中进行资源化,理由是:第一种方式不够灵活第三种方式因涉及到菜单、状

2009-11-06 14:57:00 1434

转载 可靠的同步机制、通信机制

int DSP_Reset(void) {    printf(">>>   RESET  DSP   ................../n");    GPIO_Init();            GPIO_SetIO(0, GPIO_OUTPUT);    GPIO_SetIO(1, GPIO_OUTPUT);    GPIO_SetIO(2, GPIO_OUTPUT);       

2009-11-06 14:33:00 613

转载 SNTP客户端的例子

SNTP最初由yy在peacock项目中实现,由于考虑到很多个项目都可能会用,故让xx负责移植:首先是测试在cygwin上移植。这个例子包含2个文件sntp.h和sntp.csntp.h#ifndef __IPTV_NTP_H__#define __IPTV_NTP_H__#ifdef __cplusplusextern "C" {#endif/**************************

2009-11-06 14:32:00 4644

转载 Miscellaneous

  把指针当数组元素来用    unsigned char *data_nit;         unsigned int totalLength;   unsigned char data1,data2;      ……    data1 = data_nit++;    data2 = data_nit++;    totalLength = ( (data1 & 0x0f)d

2009-11-06 14:32:00 515

转载 臃肿的代码

 // burn_ht2008.cpp : Defines the entry point for the DLL application.//#include "stdafx.h"#include "burn_ht2008.h"#include #include #include #include #include "icmpdefs.h"#include #include #include

2009-11-06 14:29:00 1247

转载 标识符(函数名、变量名)的选择

 标识符的选择亦有学问。通常一个标识符是由多个英语单词、或常用缩略语、模块名的组合。通过下划线或大小写来分隔单词,读起来有时候就像一句话。好的标识符名称能让读者一看就知道它的用途,我们称这样的标识符是自解释的。初学编程的人习惯使用过于短小的标识符。写程序的人当时明白,看程序的人(过后包括他自己)却如读天书。如果仅仅是不好读但能保持正确性还不至于太坏,关键是过于短小的标识符最大的问题就是在一个大型程

2009-11-06 14:26:00 1863

转载 尽量用库函数

 文件:shark/src/dvbc/drivers/data/data.c函数:Get_FactotyID版本:1.28#define FactoryID_addr 0x40002040#define FactoryID_length 17int Get_FactotyID(void){         int ercode = 0;         ITI_BYTE FactoryID[Fac

2009-11-06 14:25:00 468

转载 二维数组 & 二级指针

 文件:sport.c版本:typedef struct{    INT32U dmaIndex;/*DMAI_BUF_BLKSZ unit*/    INT32U encIndexH;/*1 byte unit*/    INT32U encIndexL;/*1 byte unit*/    INT32U bufSz;    unsigned char **buf;    INT16U bufs

2009-11-06 14:25:00 674

转载 bit操作的问题

 文件:peacock/drv/hisi-sci/iti_sci_driver.c代码上下文(前):        reg1 = readl(IO_ADDRESS(SCI_SCTRL1));       修改历史记录:1.2.2.1           reg1 |=(0 1.2.2.2           reg1 |=~(0 1.2.2.3           reg1 |=~(1 1.2.2

2009-11-06 14:23:00 769

原创 sizeof()使用请注意类型隐式转换问题

  举个例子:int nTest = 0;if (nTest - sizeof(int) {        printf("###/n");}###没有打印出来再举个例子:int nTest = 0;if (nTest - (int)sizeof(int) {        printf("***/n");}***打印出来了原因:sizeof()返回值是size_t也就是unsig

2009-11-06 14:20:00 344

原创 [求助]FH35板子时间问题

 调试中发现一个问题:FH35板子启动后的时候并不是1970-1-1 0:0,而是1969年11月10日将FH35板子时间设置为正常时间后,出现以下情况:FH35板子:调用time()返回time_t值为1245247783调用gettimeofday()获得的值也是1245247783,并且timezone结构的tz_minuteswest和tz_dsttime都为0调用localtime解析出

2009-11-06 14:20:00 596

原创 内存链与内存泄漏检测机制

 在MFC的DEBUG版本下char* pBuf = new char[16];按F5调试运行,如果不delete[] pBuf;则会在输出窗口中打印:Detected memory leaks!Dumping objects ->D:/测试代码/abc/abcDlg.cpp(193) : {81} normal block at 0x00034EB0, 16 bytes long.Data:

2009-11-06 14:19:00 563

原创 使用vector需小心

 typedef struct tag_ShotInfo {    char    dir[1024];    bool    bName;    char    name[64];    bool    bChan;}ShotInfo;typedef vector      ShotInfo_Vector;CTreeCtrl m_treeCtrl;         // 树控件ShotInfo_

2009-11-06 14:18:00 403

原创 软件发布了如何跟踪异常错误

 相信很多程序员头疼的是软件在家里测试没有问题,拿给客户后莫名其妙出现异常,而客户又描述不清楚,然后跑去现场调试,跟踪半天又重现不了问题。有一种方法可以精确定位异常代码,就是查找堆栈表。本文只针对WINDOWS平台软件,当软件发生异常时,会弹出“遇到问题需要关闭,要查看这个错误报告包含的数据,请单击此处”,点击之后弹出一些详细信息,下面就来讲一下如何根据Offset来跟踪异常代码。首先,在工程中设

2009-11-06 14:17:00 776

转载 关于指针的非法转换以及网络通信的注意点

 这个问题以前对个别人提醒过, 现在发现falcon项目里还是有这样的使用, 在此贴个贴提醒一下大家.现像:通过一块buffer传递一个结构体, 消费者通过将这个char型的指针直接转换成了结构体的指针使用.结果将可能是不正确的.原因:在很多系统中, 结构体的指针是要4字节对齐的. 当这个char型的指针不是4字节对齐时, 强制转换出来的结构体指针用起来是有问题的.下面的测试代码是在fh8735平

2009-11-06 14:16:00 1161

原创 使用vector::erase

正确做法是:std::list List;std::list::iterator itList;for( itList = List.begin(); itList != List.end(); ){     if( WillDelete( *itList) )     {            itList = List.erase( itList);     }     else   

2009-11-06 14:11:00 361

原创 编译过程中遇到的警告或错误

1、Linking...LINK : warning LNK4089: all references to "SHELL32.dll" discarded by /OPT:REFLINK : warning LNK4089: all references to "comdlg32.dll" discarded by /OPT:REF你程序里一定有没有使用的类,而这个类引用了shell32.dl

2009-11-06 14:04:00 941

空空如也

空空如也

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

TA关注的人

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