COM
小蚂蚁_CrkRes
Where there is a will, there is a way
展开
-
COM与DCOM的区别与联系
COM:组件对象模型技术DCOM:分布式COM 其实这种提法本身就及不科学,DCOM本身就是COM的一种表现形式,但是由于大家听见COM一般就把它当成在本地执行的COM,而DCOM当然就是分布的COM,在网络上的另一台计算机上执行.于是就诞生了这篇COM与DCOM的区别与联系. 区别:1. COM有两种存在形式,转载 2016-04-26 09:37:05 · 1952 阅读 · 0 评论 -
COM技术内幕--QueryInterface函数
接口查询:在客户查询组件的其他接口时,也是通过接口完成的。这个接口就是IUnknown.头文件包含在Win32 SDK的unknwn.h头文件中。 引用如下:interface IUnknown{virtual HRESULT __stdcall QueryInterface(const IID& iid,void** ppv)=0;virtual原创 2016-12-15 11:19:37 · 3590 阅读 · 0 评论 -
COM技术内幕--引用计数及动态链接
引用计数简介AddRef 和 Release实现的是一种名为引用计数的内存管理技术。引用计数是使组件能够自己将自己删除的最简单同时效率最高的方法。COM组件维护一个称作是引用计数的数值。当客户从组件取得一个接口时,此引用计数值将增1。当客户使用完某个接口后,组件的引用计数值将减1。当引用计数值为0时,组件即可将自己从内存中删除。规则:1)在返回之前调用AddRef。对于那些原创 2016-12-15 14:36:47 · 1125 阅读 · 0 评论 -
COM技术内幕--关于HRESULT、GUID、注册表及其他细节
HRESULT这就是结果:Here's the RESULTHRESULT 结构如下 :////////////////////////名称含义S_OK函数成功。在某些情况下,它还表示函数返回了一个布尔真值。被定义为0NOERROR同S_OK相同S_FALSE函数成功并返回一个布尔假值。原创 2016-12-15 15:59:00 · 1245 阅读 · 0 评论 -
COM编程精彩实例--COM通信
COM是如何进行通信的://////①代理/桩子或COM DLL将方法的调用参数转化成NDR格式;②COM调用RPC将格式化的数据传递给服务器端的COM代理/桩子或COM DLL; ③服务器端的COM代理/桩子或COM DLL将数据还原成参数表,放到调用堆栈和/为指针参数开辟的内存中;④服务器的COM代理/桩子或COM DLL,然后调用COM原创 2016-12-22 14:17:21 · 2713 阅读 · 0 评论 -
COM技术内幕--类厂
CoCreateInstance在COM库中包含一个用于创建组件的名为CoCreateInstance函数。此函数要一个CLSID,参数,在些基础上创建相应组件的实例,并返回此组件实例的某个接口。1) CoCreateInstance声明如下:HRESULT __stdcall CoCreateInstance(const CLSID& clsid,IUnk原创 2016-12-18 12:52:59 · 1845 阅读 · 0 评论 -
COM技术内幕--包容和聚合
包容简介:一个包含有一个内部组件并使用了其IZ接口的外部组件的内部结构//////////////////////////////在COM中,同其他内容类似,包容也是在接口级完成的。一个包含有一个内部组件并复用了其IY接口实现的外部组件的内部结构 ///////////////当外部组件聚合某个接口时,它将原创 2016-12-19 09:37:09 · 879 阅读 · 0 评论 -
COM技术内幕--编程工作的简化
智能接口指针:1)什么时智能指针一个智能指针实际上就是一个重载了操作符->的类。智能接口指针类包含指向另外一个对对象的指针。当用户调用智能指针上的->操作符时,智能指针把此调用转发给它所包含的所指对象。智能接口指针中所包含的指针将是指向一个接口的。智能接口指针IPtr的实现:class CFoo{public:virtua原创 2016-12-19 13:18:23 · 373 阅读 · 0 评论 -
COM技术内幕--调试接口与自动化
同每一个EXE都有其自己的进程不同,DLL将被映射到链接它们的EXE文件的进程空间中。由于这个原因,DLL也被称作是进程服务器,而EXE则被称作是进程外服务器。不同进程空间中的相同的内存地址将指向不同的物理内存单元/////////////对于跨越进程边界的接口,我们需要考虑如下一些条件:1)一个进程需要能够调用另外一个进程中的函数。2)一个进程需要能够将数据传递给原创 2016-12-20 11:09:55 · 2726 阅读 · 0 评论 -
C#生成COM组件,Delphi调用
C#程序:1)文件--》新建类库项目2)Properties-->AssemblyInfo.cs 设置ComVisible为true3)项目--》属性4)属性--》生成 为COM互操作注册5)代码如下using System;using System.Collections.Generic;using System.Linq;using Sy...原创 2019-03-11 13:29:25 · 2599 阅读 · 1 评论 -
COM技术内幕--接口
对组件的需求:第一:组件必须动态连接第二:它们必须隐藏其内部实现细节。实际上COM是使用了DLL来给组件提供动态链接的能力。带来的好处:1.提供了一个所有组件都应遵守的标准2.允许使用组件的多个不同版本,而且这一点对于用户而言几乎是透明的3.使得可以按相同的方式来处理类似的组件4.支持对远程组件的透明链接COM接口在C++中是用纯抽象基类原创 2016-12-14 16:28:20 · 434 阅读 · 0 评论 -
Delphi 编写COM+组件的知识和样例
一、COM组件的基础知识介绍:1、什么是COM COM是微软定的一种组件编写的规范,目的是为了实现组件的重用,不管你是用C、DELPHI、VB什么语言写的,只要遵守这种规范就是COM组件,就能相互之间调用。那这个规范是什么呢,最简单的,就是按规定使用接口,微软定了个IUnkown接口,只要实现了这个接口的类,就可以称为COM组件。在此基础上可以加上自己的接口,实现特转载 2016-04-26 09:19:11 · 4893 阅读 · 0 评论 -
Delphi 编写ActiveX控件(OCX控件)的知识和样例
一、ActiveX应用情况简介: ActiveX控件也就是一般所说的OCX控件,它是 ActiveX技术的一部分。ActiveX是微软公司推出的基于组件对象模型COM的技术,包括对Windows 32位应用编程接口(Win32 API)和组件对象模型的一系列扩充和增强,目标是把计算机桌面环境与因特网环境集成起来,同时保护在Windows技术中转载 2016-04-26 10:10:57 · 6216 阅读 · 0 评论 -
Delphi COM编程技术一(COM编程基础知识)
在当今Windows世界中随处可见。随时涌现出来的大把大把的新技术都以COM为基础。各种文档中也充斥着诸如COM对象、接口、服务器之类的术语。一、COM编程基础知识介绍:1、COM的定义 所谓COM(Componet Object Model)即组件对象模型,是一种说明如何建立可动态互变组件的规范,此规范提供了为保证能够互操作,客户和组件应遵循的一些二进制和网转载 2016-04-26 09:38:59 · 1539 阅读 · 0 评论 -
Delphi COM编程技术二(COM接口和COM组件)
一、类厂(Class Factory)1、类厂的含义: 类厂是一种组件或者对象,它就是用于创建其他对象的。COM对象不是由程序直接实例的,COM使用类厂来创建对象。每一个COM都有一个相关的类厂,负责创建在服务器中实现的COM对象;类厂把COM从实际构造一个对象的过程中分离出来,COM没有对象构造过程,所以需要使用类厂来解决创建组件时的不灵活性。 2、类厂的创转载 2016-04-26 09:46:50 · 1343 阅读 · 0 评论 -
Delphi COM编程技术三类型库
在COM组件的使用和开发过程中经常需要获取有关组件的信息。而COM组件以二进制代码的形式发布,如果不借助特定的工具这些相关信息将难以被获取。通过访问类型库就可以查看COM组件的信息。一、类型库的基础知识介绍:1、类型库的定义:类型库:在类型库中以二进制的形式描述了一个或多个对象的类型信息。具体的类型信息包括:组件的CLSID、所支持接口的IID、接口的成员函数及其参数和返回转载 2016-04-26 09:52:23 · 474 阅读 · 0 评论 -
Delphi COM编程技术四自动化技术
一、自动化技术的基础1、 自动化名称介绍:1>、自动化: 是一种从应用程序的内部自动控制另一个应用程序的方法。2>、自动化对象: 指的是实现了IDispatch接口的COM对象,IDispatch接口是自动化对象的一个重要标志。因此,可以通过QuereyInterface()函数查询组件是否包含此接口,来确定该组件是否是自动化对象。自动化对象包括属性和方法,其属性只能被读取转载 2016-04-26 09:54:54 · 792 阅读 · 0 评论 -
Delphi COM编程技术五(ActiveX技术)
一、Active技术介绍:1、Active文档涉及到的接口1>、IOleDocument接口:此接口是ActiveX文档服务器中的接口,它使一个文档对象能够与其包容器进行通信,并用其数据去创建视图,该接口也可以使一个文档对象能够枚举其视图并为包容器提供相关信息,如是否支持多视等。2>、IOleDocumentView接口:使一个包容器程序能够通过文档对象的支持而与每一个视图转载 2016-04-26 09:59:38 · 631 阅读 · 0 评论 -
Delphi COM编程技术六(DCOM技术)
在Delphi中能实现远程调用的有DCOM或COM+,这两种方式实现起来非常的相似。DCOM属于旧版本的远程调用技术,非常实用,所提供的服务保存在应用程序工程中。COM+是新版本的远程调用技术,所提供的服务保存在动态库所在的工程中。一、DCOM技术介绍:1、DCOM的定义DCOM(分布式的COM服务器):是指该服务器可以处在网络的别处,并且可通过网络非常简单和透明地激活。转载 2016-04-26 10:00:52 · 1831 阅读 · 0 评论 -
Delphi 接口技术
1、接口和类的联系和区别: 接口把类给包装了。类是应用程序功能的实现,所以必然会导致大而全,而接口是简单的,看看各个接口及其方法,都是很少的。 类喜欢采用深层继承关系,这样一来改变一个父类属性将导致一堆子类属性的更新,但是接口可以申明而不实现,接口是不推荐深层继承的。 我觉得MS对COM的说明是正确的,我们用了接口后可以在对用户隐藏内部实现的情况下同时保护老功能还转载 2016-04-26 10:02:37 · 405 阅读 · 0 评论 -
Delphi 编写ActiveForm窗体工程知识和样例(开发浏览器客户端应用程序)
一、基础知识介绍:1、ActiveForm的基础知识介绍: 在Delphi中,ActiveForm是封装了Delphi Form的一种ActiveX控件。ActiveForm其实是一种标准的Delphi From(ActiveForm继承自TForm)。ActiveForm中可能会包含某些VCL或者ActiveX组件,包括用户自定义的组件。 就像“标准的”Window转载 2016-04-26 10:05:04 · 957 阅读 · 0 评论 -
Delphi 变体类型(Variant)的介绍(流与变体类型的相互转换、变体类型常用的函数)
一、变体类型常用的函数介绍: Variant: 一种可以拥有各种数据类型; 也可以告诉目前存储的数据是什么类型(通过使用VarType函数); 可以给相同的Variant分配不同的数据类型,只要Variant包含数字值就可以执行算法; variant数组只不过是variant型的数组,不必包含同类型的数据;1、 VarArrayOf函数:更快捷的创建一维变体数组转载 2016-04-26 10:07:21 · 2405 阅读 · 0 评论 -
MVC开发及运行流程
MVC开发流程:1)新建一个MVC项目2)新建Controller3)创建Action4)根据Action创建View5)在Action获取数据并生产ActionResult传递给View6)View是显示数据的模板7)URL请求-》Controller.Action处理--》View响应默认项目模板中的内容1.App_Data:用来 存储数据库文件,XM...原创 2019-04-25 15:11:00 · 5075 阅读 · 0 评论