自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(74)
  • 资源 (1)
  • 收藏
  • 关注

原创 类前置声明和头文件包含

类的前置声明(forward declaration)和包含头文件(#include)的区别常常会迷惑我们,特别是涉及两个类相互包含的时候。因此我们有必要搞清楚二者的区别以及二者的适用场合。  首先我们需要问一个问题是:为什么两个类不能互相包含头文件?所谓互相包含头文件,我举一个例子:图层类CLayer和符号类CSymbol,它们的大致关系是图层里包含有符号,符号里定义一个相关图层指针,具

2014-03-18 19:18:03 1304

转载 工厂方法模式

8.1 女娲造人的故事      东汉《风俗通》记录了一则神话故事:“开天辟辟,未有人民,女娲搏,黄土作人……”,讲述的内容就是大家非常熟悉的女娲造人的故事。开天辟地之初,大地上并没有生物,只有苍茫大地,纯粹而洁净的自然环境,寂静而又寂寞,于是女娲决定创造一个新物种(即人类)来增加世界的繁荣,怎么制造呢?      别忘了女娲是神仙,没有办不到的事情,造人的过程是这样的:首先,女娲

2014-02-10 13:00:29 1508

转载 设计模式:简单工厂、工厂方法、抽象工厂之小结与区别

简单工厂,工厂方法,抽象工厂都属于设计模式中的创建型模式。其主要功能都是帮助我们把对象的实例化部分抽取了出来,优化了系统的架构,并且增强了系统的扩展性。本文是本人对这三种模式学习后的一个小结以及对他们之间的区别的理解。 简单工厂简单工厂模式的工厂类一般是使用静态方法,通过接收的参数的不同来返回不同的对象实例。不修改代码的话,是无法扩展的。 

2014-02-10 11:37:59 923

原创 结构体中Char a[0]用法——柔性数组

有如下定义:typedef struct{ char a; char b[0]; }; 其中元素Char b[0];叫做柔性数组,主要用于使结构体包含可变长字段。详细内容如下:柔性数组; 【柔性数组结构成员   C99中,结构中的最后一个元素允许是未知大小的数组,这就叫做柔性数组成员,但结构中的柔性数组成员前面必须至少一个其他成员。柔性数组成员允许结构中包含一个大小

2014-02-08 17:25:36 1461

原创 MFC中调用C#控件

#include // MFC Windows Forms support#using #using #using #using #using using namespace System;using namespace System::Drawing;using namespace System::Windows::Forms;using namespac

2013-12-05 16:17:21 6462 1

原创 未能实例化这个ActiveX控件"****",因为这需要设计时授权”

1 Lic文件也要随ocx一起发布才行。 ocx有代码访问Lic文件,只要保证这段代码没问题就行,一般发布时,lic安装到system下2 我把ocx里面得到序列号的部分直接返回true,然后再编译出来就可以了。VerifyUserLicense()

2013-12-03 10:25:00 6455

原创 av_rescale_q、avcodec_get_frame_defaults2、av_set_parameters函数

(1) av_rescale_q用于计算Packet的PTS。av_rescale_q的返回值是一个很大的整数,且每次计算的结果间隔很大。不同于avcodec_encode_video改变AVCodecContext *avctx的pts(小整数,且间隔小)。av_rescale_q(a,b,c)是用来把时间戳从一个时基调整到另外一个时基时候用的函数。它基本的动作是计算

2013-11-26 11:43:55 3927

转载 h264检测是I帧还是P帧

检测h264中的帧类型:nal单元类型定义,从>摘录转载:http://www.rosoo.net/a/201207/16154.html

2013-11-02 23:06:17 1249

原创 Linux查看CPU信息、机器型号等硬件信息

查看CPU信息(型号)# cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c      8  Intel(R) Xeon(R) CPU            E5410   @ 2.33GHz     (看到有8个逻辑CPU, 也知道了CPU型号)# cat /proc/cpuinfo | grep physical |

2013-07-26 17:55:17 1028

原创 modprobe:FATAL:module "xxx" not found

若加载的模块是hello.ko,应该先depmod hello.ko然后modprobe hello就行了,不知道为什么书上都只说modprobe,却不说需要先depmod

2013-07-25 12:01:54 38816 4

原创 insmod: error inserting './igb.ko': -1 Unknown symbol in module 的问题所在

编译驱动的时候碰到了  insmod: error inserting './igb.ko': -1 Unknown symbol in module 的问题,在网上看了下,说是查看 dmesg | tail 看输出信息中的Unknown symbol,加载上这些模块就好。我的输出信息是:12345[ 3548.357465] igb

2013-07-25 10:39:34 19018 4

原创 CentOS 开机自启动脚本

开机时执行自己的脚本.1.编写自己的服务脚本进入系统服务脚本目录:cd /etc/rc.d/init.d/vi test内容如下:#!/bin/bash## chkconfig: - 57 75# description: test servicestart() {echo "Starting test ..."echo 3 >>

2013-07-24 18:38:41 1562

原创 CentOS开机自动运行程序的脚本

有些时候我们需要在服务器里设置一个脚本,让他一开机就自己启动。方法如下:cd /etc/init.dvi youshell.sh #将youshell.sh修改为你自己的脚本名编写自己的脚本后保存退出。在编写脚本的时候,请先加入以下注释#add for chkconfig#chkconfig: 2345 70 30#description: the descript

2013-07-24 17:18:32 1218

原创 解决:安装rpm包时遇到error: Failed dependencies:错误

在linux下安装rpm包时经常会遇到下面这个问题:error: Failed dependencies:……………………………………………..省略号表示安装此rpm缺少的包。遇到此问题时可以在安装rpm包命令的后面加两个参数,如:rpm -ivh libstdc++5.0-3.3.3-62745cl.i386.rpm改成:rpm -ivh libstdc++5.0-3

2013-07-16 16:48:45 2232

原创 warning:deprecated conversion from string constant to 'char *'解决方案

Linux 环境下当GCC版本比较高时,编译代码可能出现的问题问题是这样产生的,先看这个函数原型:void someFunc(char *someStr);再看这个函数调用:someFunc("I'm a string!");把这两个东西组合起来,用最新的g++编译一下就会得到标题中的警告。为什么呢?原来char *背后的含义是:给我个字符串,我要修改它。而理论上,我们

2013-07-10 16:37:04 1319

原创 linux下tar.gz、tar、bz2、zip等解压缩、压缩命令小结

Linux下最常用的打包程序就是tar了,使用tar程序打出来的包我们常称为tar包,tar包文件的命令通常都是以.tar结尾的。生成tar包后,就可以用其它的程序来进行压缩了,所以首先就来讲讲tar命令的基本用法:   tar命令的选项有很多(用man tar可以查看到),但常用的就那么几个选项,下面 来举例说明一下:   # tar -cf all.tar *.jpg

2013-07-10 14:33:24 1298

转载 linux编译与链接的知识

linux下编译hello.c 程序,使用gcc hello.c,然后./a.out就可以运行;在这个简单的命令后面隐藏了许多复杂的过程,这个过程包括了下面的步骤宏定义展开,所有的#define 在这个阶段都会被展开 预编译命令的处理,包括#if #ifdef 一类的命令 展开#include 的文件,像上面hello world 中的stdio.h , 把stdio.h中的所有代码合

2013-07-08 16:28:22 5018 1

原创 VC中取得毫秒级、微妙级的时间

方法一:1 DWORD startTime = GetTickCount();2 // do something3 DWORD totalTime = GetTickCount() - startTime;感觉不是很准确 方法二:如下的代码可以取得更为精确的时间值: 1 // 取得时钟频率 2 LARGE_INTEGER  litmp ; 3 Query

2013-07-03 18:51:52 2493

转载 http 头信息详解

原文地址: http://www.cnblogs.com/meil/archive/2007/03/06/665843.htmlHTTP(HyperTextTransferProtocol)是超文本传输协议的缩写,它用于传送WWW方式的数据,关于HTTP协议的详细内容请参考RFC2616。HTTP协议采用了请求/响应模型。客户端向服务器发送一个请求,请求头包含请求的方法、U

2013-06-05 14:43:44 1056

转载 HTTP协议的C语言编程实现实例

转载地址:http://zhoulifa.bokee.com/4647374.html大家都很熟悉HTTP协议的应用,因为每天都在网络上浏览着不少东西,也都知道是HTTP协议是相当简单的。每次用到FlashGet之类的下载软件下载网页,当用到那个“用FlashGet下载全部链接”时总觉得很神奇。后来想想,其实要实现这些下载功能也并不难,只要按照HTTP协议发送request,然后对接收到的

2013-06-05 14:42:08 3251 1

转载 fxo和fxs(o口和s口)

本文主要是学习fxo口和fxs口概念的记录。适合于非通信专业的理解fxo和fxs。介绍“FXO和FXS有什么区别?”这个问题经常在VOIP中被提及。像我这样非通信专业的刚开始搞通信时挺困惑的。 FXS(Foreign Exchange Station,外部交换站)和FXO(Foreign Exchange Office,外部交换局)是模拟电话环境中两种最常见接口的名字。模拟电话,或者传

2013-04-03 10:29:17 3441 1

原创 什么是语音网关

语音网关就是一种转换设备,我们的系统支持的是网络电话,但是普通电话怎么用呢?那就需要把网线转化成电话线,rj45转化成rj11。又点通俗,但容易理解。然后再把电话线接到电话上(废话),还可以作为电话交换机的中继线使用(这个功能很有用啊,和前台妹妹聊天不用花钱阿)。 问:什么是网络电话、网络电话机?答:网络电话就是让电话中的声音通过网络送。您可以通过安装了软件(如Netmeeting

2013-04-03 10:10:04 6680

原创 error C2275 将此类型用作表达式非法

将C代码在VC++中编译,经常会出现error C2275错误,结果是变量的定义位置不对,应该在函数块的最前面。这是一个编程习惯的问题。在移植c++代码到c的时候,经常会出现一个奇怪的错误:“error C2275: “xxxxx”: 将此类型用作表达式非法”这个错误是由于c的编译器要求将变量的申明放在一个函数块的头部,而c++没有这样的要求造成的。解决的办法就是把变量的声

2013-03-14 13:45:02 1301

原创 error C2054:在“inline”之后应输入“(”

使用vs2008编译c文件时,可能遇到出现 inline”之后应输入“(”错误!解决方案是:在该头文件中加入#if defined(WIN32) && !defined(__cplusplus)#define inline __inline#endif

2013-03-14 13:44:13 8921

转载 【友元】friend的用法

友元可以是一个函数,该函数被称为友元函数;友元也可以是一个类,该类被称为友元类。(1)友元函数   友元函数的特点是能够访问类中的私有成员的非成员函数。友元函数从语法上看,它与普通函数一样,即在定义上和调用上与普通函数一样。下面举一例子说明友元函数的应用。 #include     class   Point   {   public:     Point(

2013-01-29 15:42:55 805

转载 编译警告"struct declared inside parameter list"

近来在阅读linux-2.6.37中cgroup的相关代码,读到include/linux/cgroup.h的开头时犯了嘀咕: #include #include #include #include #include #include #include #include #ifdef CONFIG_CGROUPSstruct cgroupfs_r

2012-10-24 13:06:46 18760

原创 android NDK的android.mk文件详解

android编译系统的makefile文件Android.mk写法如下(1)Android.mk文件首先需要指定LOCAL_PATH变量,用于查找源文件。由于一般情况下Android.mk和需要编译的源文件在同一    目录下,所以定义成如下形式:LOCAL_PATH:=$(call my-dir)(2)Android.mk中可以定义多个编译模块,每个编译模块都是以include

2012-10-23 13:21:14 746

原创 查看linux是32位还是64位

1.#uname -a如果有x86_64就是64位的,没有就是32位的这是64位的 # uname -a Linux WORKS 2.6.9-11.ELsmp #1 SMP Fri May 20 18:25:30 EDT 2005 x86_64 x86_64 x86_64 GNU/Linux 这是32位的 #uname -a Linux backup 2.6

2012-09-13 11:29:37 904

原创 采样率和比特率和位数

采样率表示了每秒钟的采样次数。采样率类似于动态影像的帧数,比如电影的采样率是24赫兹,PAL制式的采样率是25赫兹,NTSC制式的采样率是30赫兹。当我们把采样到的一个个静止画面再以采样率同样的速度回放时,看到的就是连续的画面。同样的道理,把以44.1kHZ采样率记录的CD以同样的速率播放时,就能听到连续的声音。显然,这个采样率越高,听到的声音和看到的图像就越连贯。当然,人的听觉和视觉器官

2012-08-10 09:47:32 2776

原创 H.264/MPEG-4 AVC

H.264,或称MPEG-4第十部分,是由ITU-T视频编码专家组(VCEG)和ISO/IEC动态图像专家组(MPEG)联合组成的联合视频组(JVT,Joint Video Team)提出的高度压缩数字视频编解码器标准。H.264是ITU-T以H.26x系列为名称命名的标准之一,同时AVC是ISO/IECMPEG一方的称呼。这个标准通常被称之为H.264/AVC(或者AVC/H.264或者H.26

2012-07-18 15:46:04 1162

原创 FFmpeg windows平台编译

FFmpeg是在Linux平台下开发的,但它同样也可以在其它操作系统环境中编译运行,本文介绍的就是在windowsXP下编译FFmpeg。一 准备环境:1 下载 mingw 和 MSYS去 http://sourceforge.net/projects/mingw/  下载A 点击“DownLoad mingw-get-inst-...exe”;B 切换到页面:

2012-07-08 20:34:38 1625

原创 cygwin 和 mingw区别

说一点,什么cygwin编译的程序可以无缝在linux上运行,根本就不能这么理解。cygwin官方的一个定义是Cygwin is not a way to run native linux apps on Windows. You have to rebuild your application from source if you want it to run on Windows.

2012-07-07 23:26:55 8495

转载 MSYS、MinGW、Cgywin

一 在Windows下比较流行的GCC移植版主要有三个。他们是 MinGW,Cygwin和Djgpp。MinGW 的主要方向是让GCC的Windows移植版能使用Win32API来编程。Cygwin 的目标是能让Unix下的程序代码在Windows下直接被编译。Djgpp 则是想让DOS下也能用上GCC。所以,对于开发人员不同的需求。选择合适的移植版会让工作变得轻松而高效。

2012-07-07 08:26:20 1714

转载 htons(), ntohl(), ntohs(),htons() 函数

在C/C++写网络程序的时候,往往会遇到字节的网络顺序和主机顺序的问题。这是就可能用到htons(), ntohl(), ntohs(),htons()这4个函数。网络字节顺序与本地字节顺序之间的转换函数:      htonl()--"Host to Network Long"      ntohl()--"Network to Host Long"      htons()

2012-06-14 16:42:11 746

转载 在VS2005环境上配置SDL

一、下载SDL下载地址和链接:http://www.libsdl.org/download-1.2.php二、解压缩假设你将下载下来的压缩文件解压至D:\SDL-1.2.13。 三、拷贝文件ü找到VS2005的安装目录(在我的机器上,VC6被安装在了C:\Program Files\Microsoft Visual Studio

2012-05-16 15:05:14 1381

转载 职场五傻,有你吗?

工作了这么多年,你一直还是一个小小的职员,身边的人一个个都升迁了,甚至入职比你晚的后辈,现在也成了你的领导,你是不是很可恼?这时你需要反思一下,看看你现在是不是已经步入了职场五傻?第一傻:水牛型对任何要求,都笑脸迎纳。别人请你帮忙,你总是放下本职工作去支援,自己手头拉下的工作只好另外加班。你为别人的事牺牲不少,但很少得到别人的感谢与上司的赏识,背后还说你是无用的老实。在同事、领导面前不会说

2012-05-07 11:40:10 1689 3

转载 Linux下Daemon的实现

注:Linux下可以直接调用damon函数来实现daemon进程,没必要重新实现,理解其原理即可。在Linux中专门提供了一个函数来完成这个daemon化的过程,这个函数的原型如下int daemon ( int __nochdir, int __noclose) ; 如果__nochdir的值为0,则将切换工作目录为根目录;如果__noclose为0,则将标准输入,输

2012-02-24 13:45:15 5679

转载 Linux系统的管道命令

管道命令是Linux系统的一个很重要的内容,这里我们只介绍一些简单的。   首先我们已经学过一个命令cat,用来显示一个文件的内容,但是你有没有遇到一个文件很长,一页显示不完的情况?如果你需要把一个很长的文件分页显示,每当你按一个键才显示下一页的话,你可以用more命令:  more LoveLetter   这样,LoveLetter的内容显示在屏幕上,没到一页就自动

2012-02-22 17:41:20 4532 2

转载 linux shell之sed

sed编辑器逐行处理输入,然后把结果发送到屏幕。  -i选项:直接作用源文件,源文件将被修改。 sed命令和选项: a\在当前行后添加一行或多行c\用新文本替换当前行中的文本d删除行i\在当前行之前插入文本h把模式空间的内容复制到暂存缓冲区H把模式空间的内容添加到缓冲区

2012-02-22 09:34:35 93041 6

转载 RPM包rpmbuild SPEC文件深度说明

一、编写spec脚本    rpm建包的原理其实并不复杂,可以理解为按照标准的格式整理一些信息,包括:软件基础信息,以及安装、卸载前后执行的脚本,对源码包解压、打补丁、编译,安装路径和文件等。实际过程中,最关键的地方,是要清楚虚拟路径的位置,以及宏的定义。 二、关键字 spec脚本包括很多关键字,主要有:引用Name: 软件包的名称,后面可使用%{name}的方式引

2012-02-16 11:01:51 1689

局域网环境下实时语音通信.rar

语音实时传输,调用windows底层的函数进行采集播放,对初学者有较好的帮助

2009-07-28

空空如也

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

TA关注的人

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