自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 收藏
  • 关注

原创 深入浅出ShellExecute

Q: 如何打开一个应用程序?ShellExecute(this->m_hWnd,"open","calc.exe","","", SW_SHOW );或ShellExecute(this->m_hWnd,"open","notepad.exe",    "c:\MyLog.log","",SW_SHOW );As you can see, I haven't

2012-10-22 10:31:45 445

转载 ffmpeg中的sws_scale算法性能测试

经常用到ffmpeg中的sws_scale来进行图像缩放和格式转换,该函数可以使用各种不同算法来对图像进行处理。以前一直很懒,懒得测试和甄别应该使用哪种算法,最近的工作时间,很多时候需要等待别人。忙里偷闲,对ffmpeg的这一组函数进行了一下封装,顺便测试了一下各种算法。简单说一下测试环境,我使用的是Dell的品牌机,i5的CPU。ffmpeg是2010年8月左右的当时最新版本编译而成,我

2012-08-06 15:17:49 2660

转载 C++11 多线程:数据保护

在编写多线程程序时,多个线程同时访问某个共享资源,会导致同步的问题,这篇文章中我们将介绍 C++11 多线程编程中的数据保护。数据丢失让我们从一个简单的例子开始,请看如下代码:01#include 02#include 03#include

2012-07-12 12:08:22 1664

转载 C#中的异步调用及异步设计模式(三)——基于事件的异步模式

四、基于事件的异步模式(设计层面)基于事件的C#异步编程模式是比IAsyncResult模式更高级的一种异步编程模式,也被用在更多的场合。该异步模式具有以下优点:·                  “在后台”执行耗时任务(例如下载和数据库操作),但不会中断您的应用程序。·                  同时执行多个操作,每个操作完成时都会接到通知(在通知中可以区分是完

2012-07-04 16:10:00 879

转载 C#中的异步调用及异步设计模式(二)——基于 IAsyncResult 的异步设计模式

三、基于 IAsyncResult 的异步设计模式(设计层面)IAsyncResult 异步设计模式通过名为 BeginOperationName 和 EndOperationName 的两个方法来实现原同步方法的异步调用,如 FileStream 类提供了 BeginRead 和 EndRead 方法来从文件异步读取字节,它们是 Read 方法的异步版本 Begin 方法

2012-07-04 16:08:53 464

转载 C#中的异步调用及异步设计模式(一)

近期项目中使用了不少异步操作,关于“异步”做个总结。总结的内容大部分都来自于MSDN,还有一些自己的心得。关于“异步”的使用可分为:使用层面和类库设计层面,细分如下:一、使用异步方式调用同步方法(使用层面)。二、使用 IAsyncResult 调用异步方法(使用层面)。三、基于 IAsyncResult 的异步设计模式(设计层面)。四、基于事件的异步模式(设

2012-07-04 16:07:10 1105

转载 Ubuntu下升级GCC

GCC是linux下的最主要的编译器之一,自从C++新标准0x开始,GCC就努力遵循新标准,直到最近GCC已经支持了部分的C++11,现在4.7已经发布了,昨天自己编译了一下试了试,可能是我安装的问题,发现存在一些问题,于是我放弃了4.7,选择使用Ubuntu更新源中的GCC4.6,下面是GCC4.6的一些安装教程,我使用的ubuntu版本是10.10,个人不喜欢11.10的风格,11.04也没有

2012-06-27 17:09:31 3255

转载 流媒体

流媒体简介随着Internet的日益普及,在网络上传输的数据已经不再局限于文字和图形,而是逐渐向声音和视频等多媒体格式过渡。目前在网络上传输音频/视频(Audio/Video,简称A/V)等多媒体文件时,基本上只有下载和流式传输两种选择。通常说来,A/V文件占据的存储空间都比较大,在带宽受限的网络环境中下载可能要耗费数分钟甚至数小时,所以这种处理方法的延迟很大。如果换用流式传输的话,声音、

2012-06-27 16:49:23 1545

原创 c#中foreach与接口IEnumerator和IEnumerable

用foreach可以遍历集合中所有元素,实现:c#编译器会把foreach语句转换为IEnumerable接口中的方法和属性,例如foreach(var val in intseq){ Console.WriteLine(val);}c#编译器把上述代码转换为:IEnumerator enumerator =intseq.GetEnumerator;while(enu

2012-06-27 10:48:05 2945

原创 c++0x:enum枚举类型

标准c++中的enumenum people{man,woman};c++11中的enumenum class people{man,woman};在c++11中enum是“强类型”,不默认的转换成int,而且有类域people p=man;//标准c++people pp=people::woman;//c++11,因为有类域,所以可以这样写int i

2012-06-27 09:24:35 956

原创 STL:generate()和generate_n()

generate()功能:用指定函数对象产生的值去给容器指定范围内元素赋值template void generate( ForwardIterator _First, ForwardIterator _Last, Generator _Gen );generate_n()功能:一个函数对象产生的值给一定的范围内指定数目的容器元

2012-06-26 16:16:56 8156

原创 ping 程序(vc6.0 原始套接字实现)

#include #include #include #include //IP_TTL#pragma comment(lib,"ws2_32.lib")//ICMP首部结构体typedef struct tagICMPHEADER{ unsigned char type;//类型 unsigned char code;//代码 unsigned short checkn

2012-06-26 10:59:47 3389 1

原创 ARP网关欺骗程序的实现(vs2008 winpacp)

向局域网发送ARP应答包,向局域网所有主机发送错误的网关MAC地址,这样所有的计算机都不能上网了源代码环境 :windows xp ,vs2008,安装winpacp开发包:winpacp字符集:ASCII#define WINVER 0x5001 //win xp#define HAVE_REMOTE#include #include #i

2012-06-26 10:58:05 2075 1

原创 不用任何中间变量,实现strlen函数

#include using namespace std;int mystrlen(char *s){ if(*s++) { return mystrlen(s)+1; } return 0;}int main(){ cout<<mystrlen("hello!")<<endl; return 0;}

2012-06-26 10:53:54 768

原创 flv视频合并(vs2008)

flv格式中有很多tag标签,合并flv视频不仅把视频文件和在一起,而且要修改duration值和每个tag的时间戳,代码如下头文件type.h#ifndef _TYPE_H_#define _TYPE_H_//flv文件头struct FLVHeader {//标志unsigned char signature_1;unsigned char signature_2;uns

2012-06-26 10:51:28 2045 1

原创 常见网络协议头部结构体定义(c/c++,x86)

//一些网络协议的结构体//MAC协议typedef struct _MAC_HEADER{ unsigned char dstmac[6];//目的MAC unsigned char srcmac[6];//源MAC unsigned short type;//协议}mac_header,*pmac_header;//ARP协议typedef struct _ARP_HEADE

2012-06-26 10:32:03 2730

原创 c#中Action<T>和Func<T>委托

泛型Acion委托表示引用一个void返回类型的方法,至多可以传递至16个参数类型,没有泛型的Action类可调用没有参数的方法,如class Test{ public static void show() { Console.WriteLine("show"); } static void Main(str

2012-06-26 10:27:10 1318

原创 c++0x:Lambda表达式(匿名函数)

Lambda表达式是一种描述函数对象的机制,它的主要应用是描述某些具有简单行为的函数。1.由于 lambda 表达式类型化,可以将其分发给 auto 变量或添加到 function 对象,如以下示例所示:auto func=[](int a,double b){return a+b;};function f=func;2.lambda表达式的闭包部分int a=3,b=4;

2012-06-26 09:32:09 1072 1

原创 c++0x:对重写(override)的控制-override和final关键字

在 C++11中,我们可以使用新的 override关键字,来让程序员可以更加明显地表明他对于重写的设计意图,增加代码的可读性。例如:class A{public: virtual void show() { cout<<"A"<<endl; }};class B:public A{public: void show() override { cout<<"B"

2012-06-25 17:33:38 2841

转载 c#在多线程中如何调用Winform

每一个从Control类中派生出来的WinForm类(包括Control类)都是依靠底层Windows消息和一个消息泵循环(message pump loop)来执行的。消息循环都必须有一个相对应的线程,因为发送到一个window的消息实际上只会被发送到创建该window的线程中去。其结果是,即使提供了同步(synchronization),你也无法从多线程中调用这些处理消息的方法。大多数plum

2012-06-25 11:50:12 498

原创 c++0x:array和for

std::array是一个支持随机访问且大小(size)固定的容器(译注:可以认为是一个紧缩版的vector吧)。它有如下特点:1.不预留多余空间,只分配必须空间,如array a={1,2};//a.size=a.capacity()2.可以使用初始化表(initializer list)的方式进行初始化。array arr={1,2,3}3.不支

2012-06-24 14:01:00 553

原创 c++0x:auto 自动类型识别

c++0x中废除了原来c++中auto关键字的意义,赋予了它新的功能--自动类型识别。类似于c#中的var关键字。例如:auto i=5;//intauto *p=&i;//int*auto d=5.0;//doubleauto sum=i+d;//sum为double当类型很难写时for(vector::iterator it=vecInt.begin();it!

2012-06-23 07:09:18 2504 1

空空如也

空空如也

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

TA关注的人

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