CComModule类

COM组件开发(六)——使用ATL开发COM组件 使用ATL开发COM组件           使用ATL开发COM组件之前,要对几个重要的类进行说明:           CComModule           这是ATL的中心模块类,它的作用有点像MFC中的CWinApp,但没有后者那么庞大。它和它导出的类主要负责处理引用技术、在本地服务器内的类厂注册以及管理自动注册和自动反注册的注册表管理程序间的协调。若要创建进程内组件,只需直接使 阅读详情
该类是一个COM服务器模块,允许一个客户端访问当前模块的组件。CComModule支持DLL和EXE模块。
备注:
Windows CE的ATL并不支持下面标准ATL的CComModule类方法:
CComModule::RegisterClassObjects
CComModule::RevokeClassObjects
一个CComModule实例使用一个对象映射来维护一系列类的定义。这个对象映射实现为_ATL_OBJMAP_ENTRY的数组结构,包含的信息有:
1.在系统注册表中进入和删除对象描述
2.通过类工厂来初始化对象
3.在组件的客户端和根对象之间建立通讯
4.执行类对象的生命周期管理
当你使用ATL COM组手创建时,组手自动产生_Module,一个全局的CComModule或其继承类的实例。
另外对于CComModule, ATL提供了CComAutoThreadModule类,它为EXE或WINNT服务实现了套间模型。当你想在多套间中创建对象时,你可以从CComAutoThreadModule继承。
通过ATL实现类厂和组件的创建 类工厂的实现,组件的创建过程 1. 在*_Server.cpp 中有 [cpp] view plaincopyprint? BEGIN_OBJECT_MAP(ObjectMap)      OBJECT_ENTRY(CLSID_Math, CMath)  END_OBJECT_MAP()   BEGIN_OBJECT_MAP(ObjectMap) OBJ 阅读详情

相关推荐

深入解析ATL(第二版)核心技术详解

COM接口是组件功能的抽象定义,通常使用IDL(接口定义语言)编写,然后通过MIDL编译器生成C/C++头文件。以下是一个简单的IDL接口示例:object,上述IDL定义了一个名为的接口,继承自IUnknown,并包含一个方法。编译后将生成对应的C++头文件,供组件实现和客户端调用。ATL通过模板参数指定线程模型,常见的线程模型包括::单线程模型,不进行线程同步。:多线程模型,使用临界区保护引用计数。:多线程但不使用临界区(用于嵌套锁)。

weixin_35920379的博客 958

CComModule

CComModule为COM对象提供了基本的宿主支持,把windows中两种类型的宿主(EXE 和 DLL)之间的差别封装了起来。 BEGIN_OBJECT_MAP(ObjectMap)   OBJECT_ENTRY(CLSID_Math, CMath) END_OBJECT_MAP() CComModule的实现位于ATLBASE.H 和 ATLIMPL.CPP里 常用的C...

weixin_33748818的博客 446

车辆TBOX科普 第7次 TBOX技术深度解析:硬件架构与核心组件详解

摘要: TBOX(车载远程信息处理单元)是智能网联汽车的核心组件,承担数据采集、通信连接与安全交互等关键功能。其硬件架构以主控单元为核心,采用ARM架构处理器(如NXP i.MX系列)实现高效能低功耗处理,搭配DDR4/LPDDR5内存保障性能,eMMC/UFS存储确保数据可靠性。设计中需平衡车规级可靠性(AEC-Q100)、EMC兼容性及成本控制,同时集成通信、定位与安全模块。未来趋势聚焦异构计算、先进制程及功能安全(ASIL-D)与信息安全融合,推动TBOX向边缘计算节点演进。该技术是汽车智能化转型的重

IT深耕十余载,大道之简 861

DCOM揭秘之五

<br />  理解ATL产生的代码<br /><br />  我们服务器端DLL的源代码是由ATL产生的。对于许多人来说,可以完全不用了解ATL创建的代码。不过,对于一些喜欢寻根究底的人来说,这是不可以接受的。这里就介绍一下由ATL产生的代码。<br /><br />  服务端的DLL代码由三种不同类型的文件组成<br /><br />   首先,是传统的C++源文件和头文件。在开始时,所有这些代码是由ATL向导产生的<br /><br />   Beep方法是通过使用“AddMethod”对话框加入的,

谭杰凯的专栏 743

IC芯片验证 - 手把手教你搭建UVM验证环境

这是一个UVM的demo项目

howard789的博客 3万+

OpenClaw:深度学习驱动的智能编程工具实战解析

智能编程工具通过深度学习技术革新传统开发流程,其核心在于代码语义理解与实时协作能力。这类工具采用AI代码补全、错误预测等技术,显著降低开发者认知负荷,尤其适用于复杂业务逻辑开发和遗留系统维护场景。以OpenClaw为例,其智能填充和上下文感知功能可提升40%编码效率,减少65%调试时间。关键技术实现包含自然语言处理、代码静态分析等,在金融科技、电商系统等领域具有广泛应用前景。热词提示:代码理解引擎、智能工作流整合展现了当前AI辅助开发的最新趋势。

chubaisheng8627的博客 320

ATL接口映射宏详解

* 本文选自:COM集中营 ATL接口映射宏详解lostall 序言:     这几天看了看ATL的接口映射宏,不知不觉看得比较深入了,突然就萌发了把它写出来的想法。ATL中定义了很多接口映射宏,有几个还是比较重要的,虽然好象没有必要把它所有的细节都弄得很清楚,但深入学习的过程中也可以顺带学一学其他的ATL类,对它的机制也可以更清楚一些,应该还是会有些好处的

bluecrest的专栏 1548

手把手教你用Qwen-7B打造医疗大模型:从数据准备到RLHF全流程实战

本文是一篇基于Qwen-7B-Chat模型构建医疗领域大模型的实战全流程指南。文章详细拆解了从数据准备、环境搭建,到增量预训练、监督微调(SFT)以及偏好对齐(DPO)的核心技术步骤,并分享了部署与持续优化的实践经验。通过LoRA等高效微调技术,帮助开发者掌握将通用大模型改造为专业领域专家的完整方法论。

weixin_29191761的博客 129

ATL的GUI程序设计(2)

第二章 一个最简单窗口程序的转型我知道,可能会有很多朋友对上一章的“Hello, World!”ATL版不以为然,因为它并不能算是什么ATL程序——毕竟它只不过是有了个CComModule而已。不过不管怎样我还是要说,它几乎仍然拥有了一个ATL GUI程序的所有组成部分:入口、初始化、程序体、卸载……“等等!”也许你会突然打断我,“——还有注册窗口类、消息循环呢?”当然,对于一个完整的

马说@优快云 5492

性能优化-高通cDSP(QDSP6)架构详解

高通cDSP开发的商业价值30秒快速认识高通cDSP开发的商业价值【高通cDSP旨在处理一些简单但需要大量计算的场景,如图像处理、科学计算、AI训练、计算机视觉等。这些场景使用CPU来运算会极大的降低CPU的吞吐量,因此利用现代寄存器较宽的特性设计出了适配数据并行的DSP芯片,cDSP就是典型的代表。利用cDSP+CPU既可以满足一般的使用场景,也可以完成现代图像和视频数据的处理。

发狂的小花的博客 5945

Modbus通信从入门到精通_2_Modbus TCP通信详解及仿真(搭建ModbusTCP仿真环境:创建虚拟PLC并进行ModbusTCP通讯;寄存器与PLC中映射关系;适合理解如何编写上位机)

LocalPort”是PLC的端口,最终的设置如下图所示:(相关的设置都可以查看帮助文档)P#DB1.DBX0.0 BYTE28是以指针形式表示的DB1的DBX0.0开始(在使用的西门子Modbus tcp的程序块中设置的“MB_HOLD_REG”输出寄存器),其有28个字节(28个字节对应14个寄存器),4001是第一个寄存器,往后数14个即可。在上面的基础上,增加一个“DB1”的“组对象”,同时将“MW0”的组对象禁止(双击组对象,“Active”取消勾选),启动之后发现无法连接。

分享学习成长历程,Winter is coming! 1万+

不使用ATL向导,创建一个简单的ATL对话框程序.

本例使用CWindowImpl类创建对话框程序.第一步:建立一个新的Win32 Application工程.第二步:在stdafx.h中包含下面三行.      #include extern CComModule _Module;#include 第三步:写WinMain函数,如下:      int APIENTRY WinMain( HINSTANCE hInstance,

sanjiang的专栏 1303

【电子通识】TINA-TI怎么使用受控源向导创建受控源

TINA-TI怎么使用受控源向导创建受控源

一点硬件 358

ATL的GUI程序设计(1)

第一章 不能免俗的“Hello, World!”在这一章里,就像所有的入门级教程一样,我也将不能免俗地以一个“Hello, World!”程序开始我的教程。然后,我将逐步深入,向你介绍这个ATL版本程序中所有必要的信息。此外,我还将介绍一些Win32中你可能不知道的东西,包括WinMain的_t兼容以及如何在MessageBox中加入自己的图标等等。接近,接近,再接近……可以说,所有“

nicholasmaxwell的专栏 821

双馈风机并网系统宽频振荡机理与抑制方法研究

双馈风机并网系统宽频振荡分析与抑制 摘要:本文研究了双馈风机(DFIG)接入弱电网引发的宽频振荡问题。通过建立DFIG并网系统阻抗模型,分析了锁相环带宽、电流环带宽等参数对阻抗特性的影响。研究揭示了DFIG与电网阻抗交互导致交截频率处相位差超过180°的振荡机理。提出基于锁相环优化的阻抗重塑抑制策略,采用电压补偿和陷波器改善系统稳定性。仿真结果表明,该方法能有效降低相位差约10°-168°,显著抑制宽频振荡。代码实现了阻抗建模、稳定性分析和抑制策略验证,为工程应用提供了理论依据。

huanghm88的专栏 319

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

ATL学习笔记

1)        IObj01接口定义。2)        CComObjectRootEx,“实现”了所有接口的公共部分,即:“AddRef”和“Release”操作,但是这两个操作的命名是:“InternalAddRef”和“InternalRelease”。3)        CComCoClass,定义了两个静态方法:CComCreator:: CreateInstanc

681

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

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

用ATL建立轻量级的COM对象(七)

ATL和注册表 CComModule 提供了两个方法用于自注册:一个是RegisterServer,另外一个是 UnregisterServer。这两个方法使用传递到 Init 例程的对象映射来完成实际的工作。正像我前面所提到的那样,每一个对象映射入口都包含 pfnUpdateRegistry 函数指针,这个指针必须由类实现者提供。ATL最初的版本所提供的例程为 C...

weixin_33973600的博客 184

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

老版QQ原生表情gif动态

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

使用windows API函数调用浏览器组件

#include <atlbase.h> #include <atlwin.h> #include <windows.h> #include <tchar.h> #pragma comment(lib,"atl") #pragma comment(lib,"User32.lib") CComModule _Module;...

dongdan3026的博客 450
上一篇: CWindowImpl类
下一篇: 怎么样使用VC的TRACE宏
windcsn
博客等级 码龄24年 50粉丝 94原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值