随笔分类 -  vc++技术

摘要:尽管函数指针被广泛用于实现函数回调,但C++还提供了一个重要的实现回调函数的方法,那就是函数对象。函数对象(也称“算符”)是重载了“()”操作符的普通类对象。因此从语法上讲,函数对象与普通的函数行为类似。 用函数对象代替函数指针有几个优点,首先,因为对象可以在内部修改而不用改动外部接口,因此设计更灵活,更富有弹性。函数对象也具备有存储先前调用结果的数... 阅读全文
posted @ 2009-11-17 16:35 巩固 阅读(288) 评论(0) 推荐(0)
摘要:C++中的模板分为类模板和函数模板,.模板的特化 (1) 类模板特化有时为了需要,针对特定的类型,需要对模板进行特化,也就是特殊处理.例如,stack类模板针对bool类型,因为实际上bool类型只需要一个二进制位,就可以对其进行存储,使用一个字或者一个字节都是浪费存储空间的.template <class T>class stack {};template < >clas... 阅读全文
posted @ 2009-11-13 11:04 巩固 阅读(867) 评论(1) 推荐(1)
摘要:类模板局部特化 类模板可以被局部特化,现举例如下:template <typename T1,typename T2>class MyClass{...}就可以有下面几种局部特化://局部特化:两个模板参数具有相同的类型template <typename T>class MyClass<T,T>{……}//局部特化:第二个模板参数的类型... 阅读全文
posted @ 2009-11-13 11:00 巩固 阅读(237) 评论(0) 推荐(0)
摘要:#include<iostream> #include<string> usingnamespacestd; voidmain(intargc,char*argv[]){ inta=10; intb=20; int&rn=a; cout<<rn<<"|"<<a<<endl; cout<<&rn&l... 阅读全文
posted @ 2009-07-29 22:00 巩固 阅读(335) 评论(0) 推荐(0)
摘要:一谈引用引用(reference)是c++对c语言的重要扩充。  一、引用的概念  引用引入了对象的一个同义词。定义引用的表示方法与定义指针相似,只是用&代替了*。  例如: Point pt1(10,10);  Point &pt2=pt1; 定义了pt2为pt1的引用。通过这样的定义,pt1和pt2表示同一对象。  需要特别强调的是引用并不产生对象的副本,仅仅是对象的同义词。因... 阅读全文
posted @ 2009-07-28 23:13 巩固 阅读(689) 评论(0) 推荐(0)
摘要:C++提供的编译预处理功能主要有以下三种:  (一) 宏定义  (二) 文件包含  (三) 条件编译在C++中,我们一般用const定义符号常量。很显然,用const定义常量比用define定义常量更好。  在使用宏定义时应注意的是:  (a) 在书写#define 命令时,注意<宏名>和<字符串>之间用空格分开,而不是用等号连接。  (b) 使用#define定义的标识符... 阅读全文
posted @ 2009-07-28 21:21 巩固 阅读(501) 评论(0) 推荐(0)
摘要:[c/c++]宏定义,#,## # —— 字符串##——连接两个参数#include <iostream>using namespace std;#define TEST(pid) (cout<<para##pid<<endl);#define TEST2(p) (cout<<#p<<end... 阅读全文
posted @ 2009-07-27 23:16 巩固 阅读(261) 评论(0) 推荐(0)
摘要:单例模式也称为单件模式、单子模式。使用单例模式,保证一个类仅有一个实例,并提供一个访问它的全局访问点,该实例被所有程序模块共享。有很多地方需要这样的功能模块,如系统的日志输出等。 单例模式有许多种实现方法,在C++中,甚至可以直接用一个全局变量做到这一点,但这样的代码显得很不优雅。《设计模式》一书中给出了一种很不错的实现,定义一个单例类,使用类的私有静态指针变量指向类的唯一实例,... 阅读全文
posted @ 2009-04-28 10:38 巩固 阅读(1204) 评论(0) 推荐(0)
摘要:有时候vs2005起始最近打开项目过多很想清除掉,找到一个清除方法,发上来和大家共享。 手工操作方法: 1)删除最近打开的文件 运行regedit,打开HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\8.0\FileMRUList 之后,在右边删除相应键值就可以了。 2)删除最近打开的项目 操作同上,只是键值位置不同HKEY_CURRE... 阅读全文
posted @ 2009-03-10 21:30 巩固 阅读(625) 评论(0) 推荐(0)
摘要:Word和Excel等文件均称为复合文件。这类文件内部有一个“文件系统”,采用“磁盘文件”的组织方式来组织文件内的数据,也称为“文件中的文件系统”。 每个复合文件中有一个“根存储”(类似于文件系统中的“根目录”),根存储之下是若干“子存储”(类似于“子目录”)和“数据流”(类似于“文件”),子存储之下可以再有子存储和数据流……。 下列代码可将任一复合文件的文件结构进行枚举,如配合树型控... 阅读全文
posted @ 2009-03-09 19:53 巩固 阅读(789) 评论(0) 推荐(0)
摘要:Windows Socket 网络编程(二) —— 套接字编程原理 一、客户机/服务器模式 在TCP/IP网络中两个进程间的相互作用的主机模式是客户机/服务器模式(Client/Server model)。该模式的建立基于以下两点:1、非对等作用;2、通信完全是异步的。客户机/服务器模式在操作过程中采取的是主动请示方式: 首先服务器方要先启动,并根据请示提供相应服务:(过程如下) 1、打开一... 阅读全文
posted @ 2009-02-28 14:00 巩固 阅读(4017) 评论(1) 推荐(1)
摘要:Windows Socket 网络编程(一) —— TCP/IP体系结构、特点及相关术语 一、TCP/IP 体系结构与特点 1、TCP/IP体系结构 TCP/IP协议实际上就是在物理网上的一组完整的网络协议。其中TCP是提供传输层服务,而IP则是提供网络层服务。TCP/IP包括以下协议:(结构如图1.1) (图1.1) IP: 网间协议(Internet Protocol) 负责... 阅读全文
posted @ 2009-02-28 11:02 巩固 阅读(5486) 评论(0) 推荐(2)
摘要:Winsock编程入门--1.初始化Winsock --> 什么是Winsock Winsock是Windows下的网络编程接口,它是由Unix下的BSD Socket发展而来,是一个与网络协议无关的编程接口。 构建编程环境 Winsock在常见的Windows平台上有两个主要的版本,即Winsock1和Winsock2。编写与Winsock1兼容的程序你需要引用头... 阅读全文
posted @ 2009-02-28 10:58 巩固 阅读(32284) 评论(1) 推荐(0)
摘要:1 引言 目前,传统的二层C/S(Client/Server)结构应用软件已发展为多层结构的分布式应用 系统[2]。为了改善系统的工作效率以及提高系统的伸缩性,很多软件开发人员都把服务器 上的一些基本数据分发到各个客户机上。这种工作模式的优点是显著的,因为它减少了那 些非实时数据(如员工表、产品数据表等)在网络上的流动,并且在网络瘫痪时,各个客 户机仍然可以维持部分的工作。同时,这种模... 阅读全文
posted @ 2009-01-19 11:56 巩固 阅读(1920) 评论(0) 推荐(0)
摘要:复合文档中的基本单位是流(stream),文档中每个OLE对象都是按树形结构存放的,每个对象由若干个流组成,文档本身也是一个对象,因此它也有流,用来描述该对象(即该文档)的。一个典型的复合文档结构如下: root(document) |----stream1 |----streamN |----object1 | |----stream1 | |---... 阅读全文
posted @ 2009-01-19 11:45 巩固 阅读(728) 评论(0) 推荐(0)
摘要:概要 没有服务器正在运行甚至安装使用标准接口从文档可检索复合文档属性。 例如, 可检索内置文档属性如 Microsoft Office 97 文档的作者、 上次修改时间和页数属性以及其他自定义文档属性。 更多信息 以下步骤说明如何生成复合文档属性查看器与 VisualC++ Microsoft。 示例是一个 Win 32 控制台应用程序项目, 并可修改以满足需要。 步骤创建示例 ... 阅读全文
posted @ 2009-01-19 10:57 巩固 阅读(1164) 评论(0) 推荐(0)
摘要:由于在工作中,常常要使用别人开发的COM对象,而我又很喜欢在C++中直接使用.h和_i.c文件进行直接开发,所以将该方法写于此. 1.要求正确安装了VS 2.使用OLE View 产生对应.IDL文件,(OLE View是VC6的一个工具) 3.通过MIDL命令 产生.IDL文件的.tlb,.h,_i.c文件(要求进入Windows终端,运行下面命令,MIDL是VS的命令,如果出现文件找... 阅读全文
posted @ 2009-01-15 14:50 巩固 阅读(2046) 评论(0) 推荐(1)
摘要:函数存放在内存的代码区域内,它们同样有地址,我们如何能获得函数的地址呢? 如果我们有一个int test(int a)的函数,那么,它的地址就是函数的名字,这一点如同数组一样,数组的名字就是数组的起始地址。 定义一个指向函数的指针用如下的形式,以上面的test()为例: int (*fp)(int a);//这里就定义了一个指向函数的指针 函数指针不能绝对不能指向不同类型,或... 阅读全文
posted @ 2009-01-03 15:41 巩固 阅读(777) 评论(0) 推荐(0)
摘要:最近看com相关的资料,看到CCmdTarget实现com接口的时候,去读了一些宏的定义,在afxdisp.h头文件中 #define BEGIN_INTERFACE_PART(localClass, baseClass) \ class X##localClass : public baseClass \ 本来这个宏定义很容易理解的,但是这里多出个X##,我真没见过这种用法,不晓得它是什么... 阅读全文
posted @ 2008-12-25 15:00 巩固 阅读(552) 评论(0) 推荐(0)
摘要:vc picture控件的使用 vc picture控件的分类进行拉总结, (一) 非动态显示图片(即图片先通过资源管理器载入,有一个... 阅读全文
posted @ 2008-11-26 14:29 巩固 阅读(3906) 评论(1) 推荐(0)