Welcome 微信登录

首页 / 软件开发 / C++

COM原理及应用----基于COM的程序设计

COM原理及应用----基于COM的程序设计

COM原理及应用----基于COM的程序设计2011-04-041、COM的作用COM作为一种软件模型,提供了程序之间通信的标准,但其最大的贡献在于对程序设计方法的变革。COM结合了对象技术和组件技术两种特性。对象特性使得应用系统的设计和实现更加符合现实世界的面貌;组件特性使得应用系统可以充分发挥组件的优势,以适应现代应用的需要。2、组件的特性组件之间可以在二进制级别上进行集成和重用;组件必须被独立地生产、获得和配置。组件接口描述了组件对外提供的服务,组件...
COM原理及应用----分布式COM(DCOM)

COM原理及应用----分布式COM(DCOM)

COM原理及应用----分布式COM(DCOM)2011-04-041、DCOMCOM的进程透明特性表现在组件对象和客户程序即可以拥有各自的进程空间,也可以共享同一个进程空间,COM负责把客户的调用正确传到组件对象中,并保证参数传递的正确性。组件对象和客户代码不必考虑调用传递的细节,只要按照一般的函数调用的方式实现即可。如果进一步拓展进程透明特性,考虑组件对象与客户程序运行在不同计算机上的情形,把进程透明性拓展为位置透明性,形成分布式组件对象模型,简称为D...
COM原理及应用----COM特性

COM原理及应用----COM特性

COM原理及应用----COM特性2011-04-041、面向对象系统的三个最基本的特性封装性、多态性、重用性。2、COM特性的概述COM对象的封装特性是很彻底的,所有的对象状态信息必须通过接口才能访问;而COM的多态性完全通过接口体现出来,而且,COM分别在三个层次上体现了多态性:接口成员函数、单个接口、一组接口(对象类别即 implemented category)。而COM的重用性相对复杂。3、重用性所谓重用性是指,当一个程序单元能够对其他的程序单元...
COM原理及应用----COM发展——COM+

COM原理及应用----COM发展——COM+

COM原理及应用----COM发展——COM+2011-04-041、COM+由于历史的原因,COM、DCOM和MTS相互之间并不很融洽,难以形成统一的整体。COM+把这三者有效地统一起来,形成了一个全新的、功能强大的组件体系结构。COM+并不是COM的新版本,而是COM的新发展,或者COM更高层次上的应用。COM +的底层结构仍然以COM为基础,它几乎包容了COM的所有内容。COM+把组件软件提升到应用层而不是底层的软件结构,它通过操作系统的各种支持,使...
COM原理及应用----COM对象和接口

COM原理及应用----COM对象和接口

COM原理及应用----COM对象和接口2011-04-041、COM对象的理解COM对象类似于C++语言中类的概念,类的每个实例代表一个COM对象,它也包括属性(即状态)和方法(即操作),状态反映对象的存在,方法就是接口。2、COM对象的标识-CLSIDGUID是一个128位的随机数,重复概率极低。它的值来源于两部分:空间值(网卡地址或随机数)和时间值。获得GUID值可以使用VC++提供的工具:GUIDGen.exe 和 UUIDGen.exe。或者使用...
COM原理及应用----ActiveX控件

COM原理及应用----ActiveX控件

COM原理及应用----ActiveX控件2011-04-041、ActiveX控制ActiveX控制是Microsoft提供的功能强大的程序设计和开发技术。ActiveX控制既是一个自动化对象(当然也是一个标准的COM对象),也是一个界面元素,如同Windows的普通控制一样。ActiveX控制是一门综合技术,它涉及到COM和OLE的许多技术精华,同时也与Windows操作系统紧密结合起来,它可作为Windows标准控制的一种扩充机制。Microsoft...
C++的++和--运算

C++的++和--运算

C++的++和--运算2011-04-06++是C++的自增运算符,作用是使变量自加1;--是自减运算符,作用是使变量自减1。++和--有两种用法,一种是前缀用法,一种是后缀用法。前缀用法如:++i、--i ,后缀用法如i++、i--,前缀用法跟后缀用法的差别在于前缀时++i的值为完成i加1后的值,--i为完成i减1后的值。例如:假设i的初值为3,执行cout<<++i<<endl;输出结果为4,而执行cout<<i++...
《Effective C++》读书笔记01:视c++为一个语言联邦

《Effective C++》读书笔记01:视c++为一个语言联邦

《Effective C++》读书笔记01:视c++为一个语言联邦2011-04-06 博客园 月光笛手都说c++难学。确实,这是由于c++过于庞大了,Meyers将庞大的c++分成了四个部分:1.;2.经典的面向对象c++:包括了class,封装,继承,多态,虚函数等经典的OO思想;3.c++模板编程,也称为泛型编程,这一部分相对内容较新,我个人正在学习《C++ Templates》加深理解;4.STL:vector,list,map,iterator相...
《Effective C++》读书笔记02:用const,enum,inline减少#define出场机会

《Effective C++》读书笔记02:用const,enum,inline减少#define出场机会

《Effective C++》读书笔记02:用const,enum,inline减少#define出场机会2011-04-06 博客园 月光笛手以前学习c语言时,老师教导我们,对于数字最好用宏(#define)来定义它。以至于 一直习惯于#define Age 12这样的写法。在的环境中,这确实是增加程序可读性的有效做法,可是在c++中,可以有更优 美的实现方式。1.当你写下#define NUMBER 11.12如果接下来使用NUBMER时出现了编译错误...
《Effective C++》读书笔记04:确保对象在使用之前被初始化

《Effective C++》读书笔记04:确保对象在使用之前被初始化

《Effective C++》读书笔记04:确保对象在使用之前被初始化2011-04-06 博客园 月光笛手我自己在写代码的时候也经常会遇到忘记初始化某对象的问题,而且这些错误比较难 以调试,Meyers提出了一些避免这些错误的解决方法:1.手工初始化所以内置类 型:这一条很好理解,对于int,enum等内置类型,在使用前一定要初始化。2.对于类类型等用户自定义的对象,使用成员初值列初始化所有的对象:1 using namespace std;23 cla...
《Effective C++》读书笔记06:如果不要编译器自动生成的函数,就明确拒绝

《Effective C++》读书笔记06:如果不要编译器自动生成的函数,就明确拒绝

《Effective C++》读书笔记06:如果不要编译器自动生成的函数,就明确拒绝2011-04-06 博客园 月光笛手有时候,我们需要定义一些独一无二的类,这些类是如此的特别,以至于我们不能将 其拷贝或者赋值:1 class Family {};23 Family mine;4 Family your;5 Family her(mine);//不能通过编译6 mine = your; //也不能通过可是上一个专题讲到,即使我们不定义copy构造...
《Effective C++》读书笔记09:绝不在构造和析构过程中调用virtual函数

《Effective C++》读书笔记09:绝不在构造和析构过程中调用virtual函数

《Effective C++》读书笔记09:绝不在构造和析构过程中调用virtual函数2011-04-06 博客园 月光笛手首先明确一下,对于一个继承体系,构造函数是从基类开始调用了,而析构函数则正 好相反,从最外层的类开始。对于在构造函数中调用virtual函数,先举个例子:1 class Transaction //所有交易的基类2 {3 public:4 Transaction();5 virtual void logTransactio...
对auto_ptr的学习

对auto_ptr的学习

对auto_ptr的学习2011-04-06auto_ptr是C++标准库提供的类模板,它可以帮助程序员自动管理用new表达式动态分配的单个对象,不过对用new表达式分配的数组管理没有类似的支持,不能用auto_ptr存储数组,如果这样做了,结果将是未定义的.auto_ptr对象被初始化为指向由new表达式创建的动态分配对象.当auto_ptr对象的生命期结束时,动态分配的对象被自动释放.在使用auto_ptr类模板之前,必须包含下面的头文件:#inclu...
<< 131 132 133 134 135 136 137 138 139 140 >>