自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 rtsp协议简介

Real Time Streaming Protocol或者RTSP(实时流媒体协议),是由Real network 和Netscape共同提出的如何有效地在IP网络上传输流媒体数据的应用层协议。RTSP提供一种可扩展的框架,使能够提供能控制的,按需传输实时数据,比如音频和视频文件。源数据可以包括现场数据的反馈和存贮的文件。rtsp对流媒体提供了诸如暂停,快进等控制,而它本身并不传输数据,rtsp

2007-12-20 14:45:00 5422

原创 RFC2326(中文版)-实时流协议(RTSP)

实时流协议(RTSP) ( Real Time Streaming Protocol (RTSP) )备忘录的状态:本文档讲述了一种Internet社区的Internet标准跟踪协议,它需要进一步进行讨论和建议以得到改进。请参考最新版的“Internet正式协议标准”(STD1)来获得本协议的标准化程度和状态。

2007-12-19 11:27:00 13365 2

原创 C++中虚函数深入剖析

 虚函数=虚拟函数    虚拟函数地址表=虚表(vtable)每个类中含有虚函数的对象,编译器都会为它们指定一个虚表(其实是一个函数指针数组),保存在数据区,它由此类所有的对象共用(即静态的),同时编译器也会为它(每个类对象)加上一个成员变量,一个指向自己虚表的指针(常称为"vptr"),并存放在对象的首地址上,由此每个类(含有虚函数)分配的对象都有一个vptr,当我们调用虚函数时,实际上是我

2007-12-05 15:06:00 1406

转载 高级语言函数调用的反汇编分析

1.将函数参数入栈,第一个参数在栈顶,最后一个参数在栈底。2.执行CALL指令,调用该函数,进入该函数代码空间。a.执行CALL指令,将CALL指令下一行代码的地址入栈。b.进入函数代码空间后,将基址指针EBP入栈,然后让基址指针EBP指向当前堆栈栈顶,并使用它访问存在堆栈中的函数输入参数及堆栈中的其他数据。c.堆栈指针ESP减少一个值,如44H,向上移动一个距离,留出一个空间给该函数作为临时存储

2007-11-30 11:13:00 1672

原创 MMS (Microsoft Media Server protocol)协议概述

 MMS (Microsoft Media Server protocol)协议概述:用来访问并流式接收 Windows Media 服务器中 .asf 文件的一种协议。MMS 协议用于访问 Windows Media 发布点上的单播内容。MMS 是连接 Windows Media 单播服务的默认方法。若观众在 Windows Media Player 中键入一个 URL 以连接内容,而不是通

2007-11-19 15:44:00 7595 2

原创 CreateFile函数详解

The CreateFile function creates or opens the following objects and returns a handle that can be used to accessthe object: files pipes mailslots communications resources disk devices(Windows NT only) c

2007-10-08 16:29:00 1837

原创 清除SQLSERVER2000暂挂项目

 HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Session Manager中找到PendingFileRenameOperations项目,并删除它。这样就可以清除安装暂挂项目 

2007-08-31 14:53:00 879

转载 使用cout格式化输出字符串

 #include "StdAfx.h"#include "./coutformatsample.h" using namespace std; // publicCCoutFormatSample::CCoutFormatSample(void){} CCoutFormatSample::~CCoutFormatSample(void){}

2007-08-30 11:00:00 5164

转载 Radio Button的简单用法

 先为对话框加上2个radio button,分别是Radio1和Radio2。 问题1:如何让Radio1或者Radio2默认选上?如何知道哪个被选上了?     关键是选上,"默认"只要放在OnInitDialog()即可。三种方法可以让它选上,     第一种:     ((CButton *)GetDlgItem(IDC_RADIO1))->SetCheck(TRUE);//选上     

2007-08-28 09:12:00 1159

转载 实现自定义拖放

 ------创建COleDropSource对象来控制放置对于大多数应用程序,拖放功能的默认实现就已经足够了。但是,某些应用程序可能要求更改此标准行为。马上你会看到一个更改标准的拖放行为的例子,可以说明其实这是一件多么简单的事情,或许,你会得到一些自定义拖放的感性认识。在我的工具条上,有一个按钮,资源ID号为:ID_DRAG_MY_OBJ,点击该按钮后,将开始拖放动作(注意,点击该按

2007-08-23 13:24:00 1430

原创 即时方式测试拖动文件Drag

 COleDataSource m_oleDataSource;  UINT uBufferSize =0;//测试只用一个文件 {  uBufferSize += lstrlen ( _T("d://1111111.rar") ) + 1;//测试一个文件  }  uBufferSize= sizeof(DROPFILES) + sizeof(TCHAR) * (uBufferSize + 1)

2007-08-22 16:05:00 1082

转载 利用MFC实现对象拖放

 利用MFC实现对象拖放对象拖放是指对某一指定的对象,利用鼠标拖动的方法,在不同应用的窗口之间、同一应用的不同窗口之间或同一应用的同一窗口内进行移动、复制(粘贴)等操作的技术。利用对象拖放,可以为用户提供方便、直观的操作界面。实现对象拖放技术,需要了解、使用MFC的CView、COleDataSource和COleDropTarget等类,并利用这些类协同工作。本文讨论了对象拖放技术,并研究了如何

2007-08-17 16:42:00 2645

转载 文件拖动Drag & Drop 全解析

 一、基本概念拖放,是指用鼠标拖动的方法,在不同程序的窗口之间、同一个程序的不同窗口之间或同一程序同一窗口的不同控件之间,进行移动、复制和粘贴等操作的技术。拖放操作是在操作系统的帮助下完成的。被拖动的对象首先向操作系统注册它使用的数据格式,并按指定的数据格式提供数据,拖放操作结束时,接收拖放的窗口按指定的数据格式提取有关数据,并根据提取的数据生成相应的对象。二、两种拖放方式拖放有两

2007-08-17 10:49:00 5125

转载 对话框程序中捕获WM_KEYDOWN消息

 如何在对话框程序中让对话框捕获WM_KEYDOWN消息作者:孙鑫                  日期:2003-9-4在对话框程序中,我们经常是利用对话框上的子控件进行命令响应来处理一些事件。如果我们想要让对话框(子控件的父窗口)类来响应我们的按键消息,我们可以通过ClassWizard对WM_KEYDOWN消息进行响应,当程序运行后,我们按下键盘上的按键,但对话框不会有任何

2007-08-15 14:56:00 1223

原创 使用Tab Control 控件的例子

1、首先创建一个MFC对话框框架,在对话框资源上从工具箱中添加上一个Tab Control 控件,根据需要修改一下属性,然后右击控件,为这个控件添加一个变量,将此控件跟一个CTabCtrl类变量绑定在一起,这里设为m_tabctrl2、创建两个新的对话框资源,其属性作如下修改:Border:none //边界为空,这样它就没了标题栏Style :Child // 这样这个模板就可以当作另一个窗

2007-08-13 13:18:00 990

原创 C++的重要特性-模板

Template 虽然很重要,但它与「运用MFC」有什么关系?有!第8章当我们开始设计Scribble 程序时,需要用到MFC 的collection classes,而这一组类别自从MFC 3.0以来就有了template 版本(因为Visual C++ 编译器从2.0 版开始支持C++ template)。运用之前,我们总该了解一下新的语法、精神、以及应用。到底什么是template?重要

2007-08-12 16:40:00 2224

转载 Inno Setup使用教程

  如何使用:文档约定 创建安装程序 创建脚本 段内参数 一些常量 公共参数 安装脚本段 [Setup] 段 [Dirs] 段 [Files] 段 [Icons] 段 [INI] 段 [InstallDelete] 段 [Messages] 段 [Reg

2007-08-11 23:02:00 3276

原创 运算符重载

在C++语言中,可以用关键字operator 加上运算符来表示函数,叫做运算符重载。例如两个复数相加函数:Complex Add(const Complex &a, const Complex &b);可以用运算符重载来表示:Complex operator +(const Complex &a, const Complex &b);运算符与普通函数在调用时的不同之处是:对于普通函数,参数出现在圆

2007-08-11 22:42:00 1401 1

原创 C++成员函数的重载、覆盖与隐藏

 成员函数的重载、覆盖(override)与隐藏很容易混淆,C++程序员必须要搞清楚概念,否则错误将防不胜防。成员函数被重载的特征:(1)相同的范围(在同一个类中);(2)函数名字相同;(3)参数不同;(4)virtual 关键字可有可无。覆盖:派生类函数覆盖基类函数,特征是:(1)不同的范围(分别位于派生类与基类);(2)函数名字相同;(3)参数相同;(4)基类函数必须有virtual

2007-08-11 22:24:00 10685 4

原创 C++函数的高级特性-函数重载

 对比于C 语言的函数,C++增加了重载(overloaded)、内联(inline)、const 和virtual四种新机制。其中重载和内联机制既可用于全局函数也可用于类的成员函数,const 与virtual 机制仅用于类的成员函数。1.重载(overloaded)重载的理由:1:在C++程序中,可以将语义、功能相似的几个函数用同一个名字表示,即函数重载。这样便于记忆,提高了函数的

2007-08-11 22:05:00 9696 1

原创 2007-8-11

 今天的电瓶车又被偷了,这已经是第二辆了, 

2007-08-11 17:43:00 780

转载 在MFC中使用Tab Control

说实话,我刚开始看见Tab Control的时候,觉得很简单。哪知道用了一下,才发现自己错了。要用好它,还是需要一些技巧的。经过网上搜索资料,以及我自己的摸索,把一些要点记录在这里。Tab Control的运行效果有点像Property Sheet,但两者还是有一些区别。我的理解就是Property Sheet主要用在对话框中,对数据进行进行分类管理。而Tab Control使用范围更广一

2007-08-10 15:21:00 1357

原创 托盘程序TrayIcon

 CXTTrayIcon m_TrayIcon;在OnCreate()函数里,创建 if (!m_TrayIcon.Create(  _T("Power Tools for MFC!"), // Toolktip text  this,                       // Parent window  IDR_MAINFRAME,               // Icon

2007-08-09 10:44:00 2562 1

原创 浏览对话框的实现

方法1:使用Xtreme Toolkit界面库中的CXTBrowseDialog 控件 if (UpdateData(TRUE)) {  CXTBrowseDialog dlg;  dlg.SetTitle(_T("Select Your Directory"));  if (!m_strDirectory.IsEmpty())  {   TCHAR path[_MAX_PATH];   ST

2007-08-09 09:34:00 915

原创 Xtreme Toolkit创建控件和ReBar

 CXTDateTimeCtrl m_monthCal;     int   CMainFrame::OnCreateControl(LPCREATECONTROLSTRUCT   lpCreateControl)     {         m_monthCal.Create(WS_TABSTOP   |   WS_CHILD   |   WS_VISIBLE   |   WS_BORDER  

2007-08-03 22:19:00 1387

原创 StreamDown中的CTreeCtrl控件处理代码

 this->m_MyFont.CreateFont(12,0, 0, 0, FW_NORMAL, FALSE, FALSE, 0, GB2312_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY,DEFAULT_PITCH   |   FF_SWISS,_T("Arial"));        CImageList m

2007-08-03 22:16:00 861

原创 CListView中鼠标双击常用处理方法

CListView中鼠标双击事件为 NM_DBCLICK,生成的函数为:void CMyList::OnDblclkList1(NMHDR* pNMHDR, LRESULT* pResult)处理方法有如下两种一、使用函数的参数双击处理函数的参数pNMHDR就带着点中项的序号:NMLISTVIEW* pNMListView = (NMLISTVIEW*)pNMHDR;int nItem =

2007-08-03 22:00:00 1370

原创 CComboBoxEx控件使用示例

 1)初始化部分在资源中添加CComboBoxEx控件,在对话框类中声明变量: CComboBoxEx m_cmbex; HICON m_icon[3]; CImageList m_image; 在对话框的OnInitDialog()函数中添加:m_icon[0]=AfxGetApp()->LoadIcon(IDI_A); m_icon[1]=AfxGetApp()->Load

2007-08-01 11:29:00 2761

原创 声明函数指针实现回调

 程序员常常需要实现回调。本文将讨论函数指针的基本原则并说明如何使用函数指针实现回调。注意这里针对的是普通的函数,不包括完全依赖于不同语法和语义规则的类成员函数(类成员指针将在另文中讨论)。声明函数指针   回调函数是一个程序员不能显式调用的函数;通过将回调函数的地址传给调用者从而实现调用。要实现回调,必须首先定义函数指针。尽管定义的语法有点不可思议,但如果你熟悉函数声明的一般方法,便会发

2007-07-31 16:24:00 2835

转载 C/C++ 笔试、面试题目大汇总

1.求下面函数的返回值(微软)int func(x) {     int countx = 0;     while(x)     {           countx ++;           x = x&(x-1);      }     return countx; }  假定x = 9999。 答案:8思路:将x转化为2进制,看含有的1的个数。2. 什么是“引用”?申明和

2007-07-31 16:19:00 22213 7

转载 几个算法题目

 算法题(说明:这些题就不是什么花样了,考的是你的基础知识怎么样。再聪明而没有实学的人都将会被这些题所淘汰。)1.链表和数组的区别在哪里? 2.编写实现链表排序的一种算法。说明为什么你会选择用这样的方法? 3.编写实现数组排序的一种算法。说明为什么你会选择用这样的方法? 4.请编写能直接实现strstr()函数功能的代码。 5.编写反转字符串的程序,要求优化速度、优化空间。 6.在链表里如何发现循

2007-07-31 15:25:00 3654 2

转载 一道很难的有关算法的测试题,写逆算法

 一道很难的有关算法的测试题,写逆算法转载 来源:http://blog.liutaotao.com/blogview.asp?logID=38最近在学习压缩算法,刚学懂了一个压缩算法,把它加以改造,做成了一道测试题.这道题很难,这个算法很巧.如果不知道答案,我都没有把握能做出来.如果你自信算法方面很强,可以试一试.如果你做不出来,又想知道答案,联系我.以下已经给出了完整的 Decode 代码

2007-07-31 15:18:00 2218

原创 HTTP断点续传的基本原理

 HTTP断点续传的基本原理断点续传是我们现在经常接触的概念,那么HTTP协议是如何支持断点续传的呢。我们先从一个例子来看看。 下面是一个断点续传的例子:(使用Net Vampire得到) I 01-7-12 19:19:23 ------------------------- Attempt 1 ------------------------- P 01-7-12 19:1

2007-07-31 13:54:00 55121 3

翻译 CString 操作指南

 CString 操作指南原著:Joseph M. Newcomer翻译:littleloach原文出处:codeproject:CString Management通过阅读本文你可以学习如何有效地使用 CString。  CString 是一种很有用的数据类型。它们很大程度上简化了MFC中的许多操作,使得MFC在做字符串操作的时候方便了很多。不管怎样,使用CString有很多特殊的技巧,

2007-07-31 13:42:00 897

原创 在VC++下对文件属性的获取与更改

 在VC++下对文件属性的获取与更改摘要:本文讲述了在Visual C++ 下编程实现对磁盘文件的属性进行获取以及更改的一般方法,并给出部分相关的关键代码。  一、 引言    文件是数据在磁盘上最常用的一种存放形式,也是在程序设计中与之经常打交道的一种编程对象,不少程序尤其是数据传输和处理类的应用程序更是需要频繁的创 建、读取和写入文件。对于一些要求不是很严格的程序,我们往往只关心文件的内容是否

2007-07-30 13:21:00 797

原创 一个CListCtrl的使用完全指南

 创建图形列表并和CListCtrl关联: m_image_list.Create(IDB_CALLER2, 16, 10, RGB(192,192, 192)); m_image_list.SetBkColor( GetSysColor( COLOR_WINDOW ) ); m_caller_list.SetImageList( &m_image_list, LVSIL_SMALL);为报表

2007-07-30 13:19:00 1106

原创 CListCtrl使用详解

 先来介绍REPORT类型的CListCtrl: 首先使用下面的语句设置CListCtrl的style: DWORD SetExtendedStyle( DWORD dwNewStyle ); 其中 LVS_EX_CHECKBOXES 表示添加CheckBox LVS_EX_FULLROWSELECT 表示选择整行 LVS_EX_GRIDLINES 表示添加表格线如果设置了LVS_EX_C

2007-07-30 13:16:00 823

原创 Xtreme Toolkit 常用代码

 m_myStatic_MenuIcon.Create(_T(""), WS_CHILD|WS_VISIBLE|SS_BITMAP|SS_CENTERIMAGE, CRect(5,5,24,24), pMenuBar,0x1234);m_myStatic_MenuIcon.SetBitmap(::LoadBitmap(AfxGetApp()->m_hInstance,(LPCTSTR)IDB_BI

2007-07-28 08:18:00 2213

原创 C中文件操作相关函数

 文件操作.2007-03-24 00:55 @函数名称:      fputchar函数原型:      int fputchar(int ch)函数功能:      在标准输出流(即屏幕上)的当前位置写入一个字符函数返回:      操作正确时返回写入的字符,错误返回EOF参数说明:      c

2007-07-28 07:52:00 1494

原创 一步一步学STL标准模板库

 在使用list必须包括头文件#include ,1)、如何定义一个list对象 #include int main (void){    list cList; //声明了list模板类 的一个实例}2)、使用list的成员函数push_back和push_front插入一个元素到list中 cList. push_back(‘a’); //把一个对象放到一个list的后面cList.

2007-07-28 07:46:00 718

空空如也

空空如也

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

TA关注的人

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