自定义博客皮肤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)
  • 收藏
  • 关注

原创 网络编程之WCF编程:WCF服务和客户端的建立,回调

1.概念Windows Communication Foundation(WCF)是由微软发展的一组数据通信的应用程序开发接口,可以翻译为Windows通讯接口。它是.NET框架的一部分,由 .NET Framework 3.0 开始引入。WCF的终结点有三个要素组成,分别是地址(Address)、绑定(Binding)和契约(Contract),简记可写成Endpoint = ABC

2013-02-21 18:30:28 15435 3

原创 c++ ActiveX基础1:使用VS2010创建MFC ActiveX工程项目

1.ActiveX的基本概念         ActiveX控件可以看作是一个极小的服务器应用程序,它不能独立运行,必须嵌入到某个容器程序中,与该容器一起运行。这个容器包括WEB网页,应用程序窗体等。。。         ActiveX控件的后缀名是OCX或者DLL。一般是以OCX和动态库共存的形式打包成cab或者exe的文件放在服务器上,客户端下载后运行安装cab或exe解压成OCX和动

2013-01-30 18:03:04 71247 34

原创 c++网络编程3:UDP编程

一.概念:        UDP是传输层中面向无连接的协议,所以UDP丢包后是不会重传的,而且他在编程上服务端和客户端是没有区别的,有的只是“虚拟上”的服务端和客户端,他在编程的实现上也很简单,不像TCP那么复杂。 二.UDP终端的编程      由于UDP在服务端和客户端是一样的,所以称为UDP终端,编程步骤如下:1.加载套接字WORD wVersionRequested

2013-01-16 20:48:29 6576 1

原创 c++基础11:变量的命名约定 头文件的问题 程序的预处理编译链接过程

一.变量的命名约定由于windows程序很长,编程人员在一段时间后自己可能忘记所定义变量的含义。为了帮助记忆和区分变量,微软创建了windows的命名约定,称为匈牙利表示法。匈牙利表示法提供了一组前缀字符,如下(红色表示常用的):前缀含义a数组b布尔值by无符号字

2013-01-16 16:36:31 1518

原创 c++网络编程2:TCP连接概念及编程

一.TCP建立连接的三次握手在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。 第一次握手:建立连接时,客户端发送SYN包(SYN=j)到服务器,并进入SYN_SEND状态,等待服务器确认;【客户端->服务端:SYN(j)】第二次握手:服务器收到SYN包,必须确认客户的SYN(ACK=j+1),同时自己也发送一个SYN包(SYN=k),即SYN+ACK包,此

2013-01-16 12:45:51 6991

原创 c++网络编程1:抓包工具WireShare的使用

WireShare抓包工具:1.作用:使用WireShare抓包工具可以监视某台机器的某个端口的数据的“进出”,这台机器可以是本机也可以是网络上的任意一台机器。2.重要的界面介绍   2.1 主界面 上图中的“红框”区域是显示机器的网卡信息,选择一个要监视的网卡项,双击,弹出“监视信息配置窗体”    2.2 监视信息配置窗体“Capture Filter”是监

2013-01-14 17:12:38 4622

原创 c++基础10:继承和派生 虚函数的作用 多态性概念 纯虚函数和抽象类的概念

一.继承和派生1.概念:基类(父类):原有的类派生类(子类):基于基类新建立的类派生(类的派生):在原有类的基础上建立新类并且添加新特征的过程继承:子类不加修改延续父类的特征 2.单一继承:子类只有一个基类的继承多重继承:子类拥有多个基类的继承叫多重继承 3.使用冒号(:)来声明派生类(子类):class 子类:public 父类{ }上

2013-01-08 17:25:14 1522

原创 c++基础9:函数,函数重载和运算符重载

一.函数      1.函数重载,函数覆盖,函数隐藏三者的区别,概念          函数重载:在一个类中,函数与函数的函数名相同,参数类型或者参数的个数不同          函数覆盖:在基类和派生类中,基类的函数必须是虚函数,两个类中的函数与函数的函数名相同,参数类型和个数也完全相同          函数隐藏:在基类和派生类中,基类的函数必须不是虚函数,两个类中的函数与函数

2013-01-07 17:54:55 1185

原创 c++基础8:常用的数据结构及算法

一.常用数据结构数组 (Array)  在程序设计中,为了处理方便, 把具有相同类型的若干变量按有序的形式组织起来。这些按序排列的同类数据元素的集合称为数组。在C语言中, 数组属于构造数据类型。一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型。因此按数组元素的类型不同,数组又可分为数值数组、字符数组、指针数组、结构数组等各种类别。栈 (Stack)

2013-01-07 15:36:00 10615

原创 c++基础6:堆和栈 内存泄漏 栈溢出

一.首先讲解一下程序中的数据在内存中的存放方式有以下几种:1.栈(也可以成为堆栈)区:由编译器自动分配并且释放,该区域一般存放函数的参数值,局部变量值等,当函数运行结束并且返回时,所有的函数参数和局部变量都会被操作系统自动回收。2.堆区:一般由程序员分配及释放,若程序员不释放,程序结束时可能由操作系统自动回收。3.寄存器区:用来保存栈顶指针和指令指针4.全局(静态)区:全局变量和静

2013-01-05 17:32:49 5211

原创 c++基础7:指针和引用

一.指针 1.指针概念:指针就是用来保存内存地址的变量。    声明指针的方式:int *p;与运算符*结合,p就表示一个指针。  2. 为什么使用指针(指针的三大作用):由于指针可以通过内存地址直接访问数据,可避免在程序中复制大量的代码,因此指针的效率最高,其三大作用如下     2.1 处理堆中存放的大型数据     2.2 快速访问类的成员数据和函数     2.

2013-01-04 21:01:33 1076

原创 c++基础5:链表

数组就像一个容器,它的大小是不可调节的,这一点很令人头疼,因为假如你买了一个很大的容器,却用来盛较少的东西,你会感到很浪费,假如你换一个小容器,它又放不下许多东西。        链表的出现,解决了这个问题,他将按需要的大小在堆区“动态”的申请一段内存空间(改空间就称为链表的节点),可以按要求不断的申请许多节点,然后将申请的链表的节点根据需要逻辑的连接起来,组成链表。排在第一位的节点称为头结点

2013-01-04 17:26:25 1075

原创 c++基础4:c++工程的动态链接库dll的导出使用方法

c++工程生成的动态链接库如果想给别的工程(包括.net工程,MFC工程等)使用,就必须遵守一些规则进行编译导出动态库(注意:这里是指两个不同的工程调用,如果同一个工程里的函数就不用这么做了):下面以add函数为例说明:1.首先在函数定义的时候采取标准的调用约定_Stdcall(编译器将add改名),即int _Stacall add(),该约定是pascal的标准调用约定(所谓的调用约定

2013-01-04 15:27:13 1451

原创 c++基础3:关于前置++和后置++的那么点纠结

在STL基础6:list容器的使用总结曾经讨论过前置++和后置++最本质的区别:前置++返回的就是操作数自增后的结果int a=5;int b=++a;//该表达式执行后b=6,a=6后置++返回的是操作数的一个副本(未自增操作数的值),然而操作数本身已经调用前置++的方法自增int a=5;int b=a++;//该表达式执行后b=5,a=6两者比较总结:

2012-12-27 18:21:43 2702 1

原创 STL基础6:list容器的使用总结

一.list使用构造函数的四种初始化方式list的初始化方式和vector基本一样://1.默认构造函数,长度为0的列表 list lis1; //2.带有单个整形参数的构造函数,长度为50的列表 list lis2(50); list lis3(50,1);//长度为50,初始值为1的列表 //3.复制构造函数,构造一个新的列表lis4,作为已存在的列表lis3的完全

2012-12-26 17:08:24 3768 1

原创 STL基础5:vector容器的使用总结

一.vector使用构造函数的四种初始化方式//1.默认构造函数,长度为0的空向量 //vector v1; //2.带有单个整形参数的构造函数,长度为50的空向量 //vector v2(50); //vector v3(50,1);//长度为50,初始值为1的向量 //3.复制构造函数,构造一个新的向量v4,作为已存在的向量v2的完全复制 //vector v4(v

2012-12-22 16:43:06 5183 2

原创 STL基础4:STL7个常用容器的比较

1.STL容器分类:STL的容器可以分为以下几个大类: 一 顺序(序列)容器, 有vector, list, deque, string,stack( 适配器类), queue( 适配器类), priority queues( 适配器类)二   关联容器,     有set, multiset, map, multimap, bitset,hash_set, hash_map, h

2012-12-21 21:00:19 15600 3

原创 STL基础3:STL一些概念详解

要想真正的熟悉和深入了解STL,就必须先了解模版的概念(关于模版后面的发布文章会详解),这篇文章首先介绍STL的概念,分类,使用用例。1.STL定义:标准模版库简称STL,它是由惠普公司的Alexander Stepanov和Meng Lee合作开发的,他目前已经成为C++草案标准的一部分。 2.STL有6大组件:algorithm(算法)、container(容器)和iter

2012-12-21 17:40:38 2100

原创 STL基础2:模版迭代器的几点注意事项

以map容器为例:第一:前置++和后置++的区别1.使用typedef定义map容器的迭代器 typedef map::const_iterator CIT;2.定义迭代器对象CIT cit;3.定义map容器map clientInfoMap;4.遍历map容器里的内容(cit->first:获取map容器的关键字,cit->second:获取map容器的关键值):for

2012-12-18 18:49:26 1954

原创 STL基础1:STL标准模版在VS2010中的使用方法

由于STL标准模版已经作为C++的一种标准,所以使用STL和使用C++标准的函数库一样,其头文件的位置位于C:\Program Files\Microsoft Visual Studio 10.0\VC\include。而且不仅需要包含#include头文件,而且还要引入命名空间,例如using namespace std;例如:使用list模版 #include using

2012-12-17 19:53:24 6898 1

原创 c++基础2:使用VS2010 创建最简单的MFC应用程序窗体

1.添加-新建项目-选择“VISUAL C++”-MFC应用程序,确定-》下一步2.在“应用程序类型”中选择“基于对话框”,下一步3.在“用户界面功能”只选择  “粗框架”,下一步4.在“高级功能”,取消所有选择。下一步5.“生成的类”,点击“完成”

2012-12-16 19:08:00 15942

原创 c++基础1:需要了解的几点重要概念

1.windows api:【使用VS,其头文件在C:\Program Files\Microsoft SDKs\Windows\v7.0A\Include】WIN32 API也就是Microsoft Windows 32位平台的应用程序编程接口。我们对待API函数不必刻意去研究每一个函数的用法,那也是不现实的(能用得到的API函数有几千个呢)。正如某位大虾所说:API不要去学,在需要

2012-12-15 15:04:39 1755

空空如也

空空如也

空空如也

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

TA关注的人 TA的粉丝

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