组件和COM

【论文学习】《Fully-Convolutional Siamese Networks for Object Tracking》2016年SiamFC 全卷积孪生网络用于目标跟踪 在这项工作中,我们脱离了跟踪中采用的传统在线学习方法,并展示了一种专注于在离线阶段学习强嵌入的替代方法。与在分类设置中的使用不同,我们证明,对于跟踪应用,孪生全卷积深度网络能够更有效地使用可用数据。这不仅反映在测试时,通过执行有效的空间搜索,也反映在训练时,其中每个子窗口都有效地代表一个有用的样本,而几乎没有额外的成本。实验表明,深度嵌入为在线跟踪器提供了自然丰富的特征来源,并使简单的测试时策略表现良好。我们相信这种方法是对更复杂的在线跟踪方法的补充,并期望未来的工作能够更彻底地探索这种关系。 阅读详情

 

一个应用程序通常是由一个二进制文件组成的。当编译器生成此应用程序后,在对下一个版本的源代码编译并发行新生成的版本之前,应用程序一般不会有所变化。显然,人们不愿意看到这种应用程序在发行之后处于静止状态。开发人员因此想出一种方法,让发行后的软件不断注入新的活力。这种方法就是组件技术。

组件技术有别于传统的模块、类等面向对象中的概念,以往的程序当编译之后在文件中是静止不可变的。一个组件同一个微型程序类似,都是编译、链接好的并可以使用的,一个最终的应用程序就是这样的若干组件打包得到的。换一句话说就是,各定制的组件在运行时同其他组件连接起来构成一个完整的应用程序。在程序发行之后,只要用户需要,随时可以对其中任何一个组件进程恰当的修改。

一    使用组件的优点

1.    定制程序。由于使用组件技术的应用程序是由很多小的组件组成的,所以用户定制一个应用程序时仅仅需要将相关的组件替换掉而不需要重新更改整个程序,这大大提高了程序定制的效率。另外,时刻不要忘记,组件技术就是让程序在发行后也可以方便的更换掉其中的任何一个组件。

2.    快速应用程序开发。开发人员可以从完善的组件库中取出所需的组件并快速组装成一个应用程序。当然所有的应用程序不可避免的需要一些特殊组件,但是一个应用程序的绝大部分任然可以用标准的组件建立起来。

3.    分布式应用。组件架构可以使开发分布式应用的过程得以简化。C/S架构就是向组件架构跨出的第一步。分布式的应用程序将整体分为远程和本地两个功能部分。如果使用组件技术在本地实现一个或者多个组件专门负责与位于远程的功能部分(确切的说,是其中的某个或者某几个组件)通信。本地应用程序部分就不需要了解实际的远程组件究竟在哪里,因为这样的架构就相当于在本地使用那些组件一样。

二 对组件的要求

组件可以动态的插入或者卸出应用程序,为了实现这样的功能,所有的组件必需满足两个条件。

1.    动态链接。组件技术的最终目标是应用程序在运行过程中能够将组件替换掉。如果一个组件不能在运行时动态的链接到应用程序中,那么这样的程序组装方式和面向对象技术就没有实质上的差别了。

2.    良好封装。为了说明这一点,这里定义一些术语。对于一个应用程序或者组件,如果它使用了其他组件,我们就称之为客户。一个客户通过接口与其他组件进行连接。如果某个组件发生了变化,接口没有变化,客户不需要任何变化;若客户发生了变化,接口没有变化,组件也不要任何变化;但是如果对组件或是客户的修改导致了接口的变化,那么接口的另一方也需要发生相应的变化。这样的客户与组件的实现隔离开来的要求对于组件加上了如下的限制:组件必需将其实现所用的语言封装起来;组件必需以二进制的形式发布;组件必需是在不妨碍老客户的条件下进行升级;组件在网络上的位置必需可以随意的分配;

三 COM

俗话说“没有规矩,不成方圆”,将应用程序划分成多个部分的组件也是需要遵循相应的标准的,这个标准就是COM。COM的全称是Component Object Model,即组件对象模型,是关于如何建立组件以及如何通过组件构建应用程序的一个规范。目前Microsoft所有的应用程序都是用了COM技术,ActiveX技术就是基于COM而建立起来的。

COM是一个说明如何建立可动态互变组件的规范,同时它还是一种软件组织的方法。COM规范就是一套为组件架构设置标准的文档。COM组件是以DLL或EXE的形式发布的可执行代码组成的。遵循COM规范的组件能够满足对组件架构的所有需求。

与其说COM是什么,还不如说COM不是什么更能让人加深对其的正确理解。COM不是一种编程语言,COM所说明的是如何编写组件,具体选用什么语言则是完全自由的;COM不是DLL,COM使用DLL给组件提供动态链接的功能;COM不是像Win32 API那样的函数集,COM并不提供具体的功能函数,它仅仅提供了一些常用的提供组件的管理服务,COM向开发人员提供了开发与语言无关的组件库的方法,但是本身并没有提供具体实现。

COM具有一个被称作COM库的API,用来提供对所有用户和组件都非常有用的组件管理服务。COM库保证对所有组件的绝大多数的重要的操作都可以按相同的方式完成。同时COM库也可以通过这个库提高开发效率,将更多的时间花在开发自己的客户程序或是组件上面。

COM强制开发人员必须将客户和组件严格的隔离开,这样的限制带来了各种好处:

l  提供了一种所有组件都应该遵守的标准;

l  允许使用组件的不同版本,而这一点都用户是透明的;

l  使得可以用相同的方式处理类似的组件;

l  定义了一个健壮的,与语言无关的架构;

l  支持对远程组件的透明连接。

 

参考文献:《COM技术内幕》

 

YOLOv8改进 | 融合篇,YOLOv8改进主干网络为MobileNetV3+CA注意机制+添加小目标检测层(全网独家首发,实现极限涨点) 小目标检测难点众多,导致很多算法对小目标的检测效果远不如大中型目标。影响算法性能的主要原因如下:第一,小目标分辨率低、信息量不足,导致神经网络提取到的有效特征较少。第二,小目标在图像中所占的区域较小,易受背景干扰,这对算法的定位性能要求较高。第三,小物体标注困难,训练数据有限,导致模型泛化能力差。例如多尺度学习、无锚机制和生成对抗学习等方法,都能提高小目标检测的准确性和鲁棒性。为了改善小目标漏检现象严重的问题,我在 YOLOv8 中增加了 P2 检测头,相当于有四个检测头,使网络能检测到更小的目标。 阅读详情

相关推荐

深度学习中的编码器-解码器架构

解码的作用:转换为人类可理解的形式,解码器的任务是将编码器生成的中间表示(上下文向量)转换回人类可理解的输出形式(如翻译后的文本、生成的图像描述等)。解码器通过逐步生成输出序列,使得最终的输出符合人类的理解和需求。编码的作用:转换为机器可理解的形式,编码器将输入数据(如文本、图像等)转换为一种机器更容易处理和理解的形式,即上下文向量或编码。在深度学习中,编码器(Encoder)解码器(Decoder)是常见的神经网络架构,通常用于处理序列到序列(seq2seq)任务,如机器翻译、文本摘要和图像描述等。

xxk1323的博客 1093

COM组件和调用

COM组件和调用1、引言2、实验环境3、COM组件介绍4、实验过程4.1 利用C#创建一个COM组件4.1.1 项目创建4.1.2 配置项目属性功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图...

babyx_back的博客 6958

sqoop抽取mysql的数据到hive表里面,字段内容被自动截取,导致字段不全的问题解决

今天央视重新转播NBA,写篇博客纪念一下这个重要的日子,湖人的表现就呵呵了!!!! 强行转到博客的主题来 mysql的字段属性:该字段能存下的值比如:“山东” `province` varchar(3) NOT NULL COMMENT '省份' 用sqoop sqoop import --connect "jdbc:mysql://xxxxxx:3306/xxxxxx?tinyInt1isBit=false&zeroDateTimeBehavior=convertToNull..

放肆桀骜 963

com组件和.Net组件异同比较

com组件和.Net组件异同比较 COM组件注册是指Windows编程中,为了使用自定义或第三方COM对象,对进程内组件(DLL)和进程外组件(EXE),利用自注册(self-registering)和非自注册组件程序而进行的操作。COM组件是微软曾经力推了很多年的一种代码复用的技术框架,在这些年里也得到了极大的发展和应用,但它的弊端却也日益明显,我们不得不面对众多的 COM组件之间的版本控制和令人恐怖的DLL地狱,还有注册表、GUID等等。在我们安装一个软件的同时,也带来了大量的我们所未知的版本繁多的CO

qq_42744613的博客 2809

Element Server Suite社区版Helm部署:私有Matrix聊天服务器快速搭建指南

在云原生和微服务架构日益普及的今天,容器化部署已成为现代应用交付的标准范式。Kubernetes作为容器编排的事实标准,通过声明式配置和自动化管理,极大地简化了复杂分布式系统的部署与运维。Helm作为Kubernetes的包管理器,通过预定义的Chart模板,将应用及其依赖打包,实现了真正的“一键部署”,显著提升了部署效率和可重复性。这种技术组合的价值在于,它让开发者能够专注于业务逻辑,而非底层基础设施的复杂性,尤其适用于需要快速搭建、易于维护的服务场景。Element Server Suite Commu

weixin_42610010的博客 299

【Flow3D实战】从零构建水利冲淤模型:关键步骤与参数详解

本文详细介绍了使用Flow3D构建水利冲淤模型的关键步骤与参数设置技巧。从基础认知到前处理、计算设置和后处理,全面解析如何高效模拟水流与泥沙的相互作用,特别适用于桥墩冲刷、水库泄洪等工程场景。通过实战案例分享,帮助读者掌握Flow3D在水利工程中的精准应用,提升模型精度与计算效率。

weixin_42549723的博客 499

com组件和一般dll的区别

    这阵子在想一个需要利用com组件的小程序怎么做,突然想起上次去面试的时候考官问过autocad开发时为什么要利用com,而不采用一般的dll呢?     到google上查了一下,许多人也问了一样的问题:)     用com来写程序要比普通的dll麻烦一些,但是带来的好处也大很多,尤其是在开发像autocad这样大型软件的时候,需要跨区域来协同工作。 “学习COM,首先要知道COM的目的

tjulmy的专栏 5万+

AutoSAR系列讲解(入门篇)2.4-Runnables可运行实体

讲解一下Runnable和其工程的实际映射

雪云飞星的博客 3万+

C++中COM组件的创建和调用

在C++中COM组件的创建和调用

qianniulaoren的博客 4387

Android Jetpack 最全面试题及参考答案

要使用 WorkManager 定义一个异步任务,以下是详细步骤。首先,需要创建一个继承自 Worker 类的自定义类,这个类代表了要执行的具体任务逻辑。// 在这里编写具体的任务逻辑,比如从网络下载文件try {在上述代码中,doWork方法就是任务的核心执行逻辑所在,这里模拟了从给定的 URL 下载文件到本地的操作,若下载成功返回,若出现异常则返回。然后,在需要调度任务的地方,比如在某个 Activity 或者 Fragment 中,通过构建 WorkRequest 来安排任务执行。

大模型大数据攻城狮的专栏 1895

EXCEL VBA从入门到精通 前言

本书通过丰富的实例和案例,帮助读者更好地理解和应用Excel VBA编程,同时也介绍了常用的工具、资源、社区和协作平台等,方便读者进行进一步的学习和开发。我强烈推荐这本书给所有希望学习和掌握Excel VBA编程的读者。多样化的资源和工具介绍:本书介绍了丰富的工具和资源,包括官方文档、在线教程、代码库、论坛、博客等,方便读者进行进一步的学习和开发。详细的讲解和丰富的示例:本书从语法和对象开始讲解,通过丰富的实例和案例,帮助读者更好地理解和应用Excel VBA编程。第一节:什么是VBA 5。

1728

Com 组件的装载和卸载

<br />进程内组件的装载: <br /><br /><br /><br />客户程序调用COM 库的 CoCreateInstance 或 CoGetClassObject 函数创建 COM 对象,在 CoGetClassObject 函数中,COM 库根据系统注册表中的信息,找到类标识符 CLSID 对应的组件程序(DLL 文件)的全路径,然后调用 LoadLibrary(实际上是 CoLoadLibrary)函数,并调用组件程序的 DllGetClassObject 引出函数。DllGetClass

闻道有先后,术业有专攻,如是而已。 5698

UG NX二次开发基础篇-外部模式与DLL内部模式(二 DLL内部模式)

通常情况下,我们希望我们的外挂,在UG启动的时候,就自动加载我们的外挂,并以菜单和工具条的方式,显示在UG上面。当然,这也是市面上所有外挂的操作,因为您不可能要求你的用户,以手工加载的方式,去调用你的外挂吧。在上一篇中,有粉丝留言说,启动 bat 文件,启动EXE外挂,会提示无法找到DLL的错误,这是因为UG的环境变量设置有问题,这里,我们把BAT文件作一个修改,直接改为实际目录。EXE外部模式,还有很多部分需要添加的,如参数的传递、输出消息的显示、UG操作的消息显示,等等。Dll执行结束后,会调用。

u014657217的博客 1653

java com组件开发_COM组件和调用详细教程

一、引言实验目的:构建一个com组件,该组件存储了10000个12位的验证码;输入一个验证码,组件返回该验证码是否正确(是否是10000个其中之一);输入一个字符串,返回一个对应的映射的验证码(映射方法自己定义)。二、环境Windows 10 ×64Visual Studio 2015IDEA 2018.1.5jacob-1.19三、实验步骤1.C#写com组件以管理员身份运行VS新建->项...

weixin_39884492的博客 3677

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

COM组件和注册表的关系

技术摘要:讲述COM组件和注册表的关系,了解COM的原理并提供高级编程的方法 阅读对象:COM及调用程序开发人员 1.概述 COM组件从开发者和调用者的角度来说,都存在一定的方便性,就是部署方便。开发者一般由开发框架(VB/MFC/ATL)提供了COM组件的注册方法,而调用者更是无视其开发者部署方法按照COM标准使用编程ID或者类ID去调用。 但是这所谓的便利性有时因为环境遭到损坏的原因而变得很麻烦。所以我们要知道这便利性的原理,出问题的时候好知道如何排错。 2.类型库 类型库注册在HKEY_CLASSES

weixin_45303938的博客 1231

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

DLL和COM组件的区别

大致区别: 1.COM组件是New出来的; 2.dll库没有入口点函数DllRegisterServer,所以regsvr32 ** 手动注册动态链接库,是注册不成功的; 3.COM组件不局限于平台和语言,可移植性更强;

拥抱变化 2227

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Delphi创建COM组件并分别用Delphi和html调用该组件的简单实例

一、功能介绍及效果图 用delphi xe6 创建一个简单的COM组件,并分别测试了用delphi和HTML调用该组件的方法ShowWuXiaNames。效果图如下: 图一:在Windows中注册的COM组件 图二:Delphi调用COM组件...

longchanghua_enshi的专栏 3209

关于Dll、Com组件、托管dll和非托管dll

Com组件和dll区别: 1.普通dll不能通过regsvr32.exe来注册,而Com组件能通过regsvr32.exe注册。 2.Com组件是微软的一个协议,满足com组件协议的dll文件就是com组件,这种协议为了跨语言、跨平台使用,dll组件需要编译后使用,而Com组件注册后即可使用。 而dll是动态链接库,是一个可以导出函数的集合。 3.Com组件可以是exe也可以是dll文件。 托管dll/Com组件和非托管dll/Com组件: 1.非托管Com组件是用非运行库代码编写的,如C++,

511遇见 8555

VS2010创建和使用COM组件

http://ycuestc.blog.163.com/blog/static/21928109920133292551488/ COM组件维基百科: “COM是微软自1993年便提出的组件式软件平台,用来做进程间通信(Inter-process communication, IPC)以及当作组件式软件开发的平台。COM提供跟编程语言无关的方法实现一个软件对象,因此可以在其他环境中

pinellina的博客 1万+

com 组件和一般 DLL 的区别

这阵子在想一个需要利用com组件的小程序怎么做,突然想起上次去面试的时候考官问过autocad开发时为什么要利用com,而不采用一般的dll呢?  到google上查了一下,许多人也问了一样的问题:)     用com来写程序要比普通的dll麻烦一些,但是带来的好处也大很多,尤其是在开发像autocad这样大型软件的时候,需要跨区域来协同工作。 学习COM,首先要知道COM的目的是什么,

rongwenbin的专栏 809

COM组件和.NET组件的区别

COM组件是非托管对象,可以不需要.NET框架而直接运行,.NET框架组件是托管对象,必须有.NET框架的支撑才能运行。 COM组件有独立的类型库文件,而.NET组件是通过使用程序集清单来进行自我引用 COM组件基于接口进行通信,而.NET组件直接通信,不通过中间接口查询COM组件必须在注册表中注册DUID项,.NET组件却不需任何手工注册COM组件没次可以而且只能注册一个版本,.NET组件可...

weixin_30765475的博客 804

QT 开发COM(ActiveX)组件基础介绍和方案验证

在创建组件对象时,客户程序调用COM库中的函数进行组件对象的创建工作,COM库的创建函数根据注册表的信息并调用组件程序的入口函数来创建组件对象。COM 既提供了组件之间进行交互的规范,也提供了实现交互的环境,因为组件对象之间交互的规范不依赖于任何特定的语言,所以,COM也可以是不同语言协作开发的一种标准。当另外的组件或者普通程序(即组件的客户程序)调用组件的功能时,它首先创建一个COM对象或者通过其他途径获得COM对象,然后通过该对象所实现的COM接口调用它所提供的服务。

张坤xfiction的专栏 4785

通过COM组件查找office和pdf文档的关键字

#ifndef __KEYSEARCHER_UTIL_HPP__ #define __KEYSEARCHER_UTIL_HPP__ #pragma warning(disable:4259) #import "C:\Program Files\Common Files\Microsoft Shared\OFFICE12\MSO.DLL" rename("RGB", "RGBMSO")

学习,思考,记录 1539

组件基础和COM接口

一 组件基础   1 软件开发的阶段     1.1 结构化编程       采用自顶向下的编程方式,划分模块       和功能的一种编程方式。     1.2 面向对象编程       采用对象的方式,将程序抽象成类,       模拟现实世界,采用继承、多态的方式       设计软件的一种编程方式。     1.3 面向组件编程       将功能和数据封装成二进制代码

Barry的博客 3732

关于C++编写com和调用com组件的小例子以及个人所犯错误见解

最近在完成研究生课程面向对象方法的第一次作业编写一个com: 环境Visual Studio 2015 一、构造COM组件,项目名称为ComZhh,过程 进入VS,选择左上角的文件,点击新建项目->VisualC++->ATL->ATL项目 注意在下一步中勾选支持com+1.0 接着你讲看到项目下有两个目录 不要着急,你只需要关注ATLProject1即...

qwezhaohaihong 3965
上一篇: ASCII文件与二进制文件
下一篇: NAT类型及检测方法
Atoric
博客等级 码龄19年 32粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值