C++ COM实现之二 注册这个DLL

VC6用C++调用VS中C#生成DLL/COM的方法和注意事项 先感慨一下,研究这个问题研究了四个工作日才解决,实在是太不容易了,现在很开心很得意,叉会腰哈哈~ 虽然就是一件看起来很简单的事情,我相信你在看到我这篇文章之前也已经看过许多相关文章了,但是很多细节需要注意,哪一步没有做好可能就走入了一个无尽的陷阱绕许多弯路,把我的经验分享出来如果能帮助到也遇到相同问题的小伙伴,就真的太好不过了。(我的开发环境:WinXP-VC++6.0 C++ & Wi... 阅读详情

DLL做好之后就可以实现注册代码了,注册之后客户端就可以通过注册表查询到该DLL并进行调用。下面是注册过程,其中使用的两个文件如下:

 

 

registry.h和Registry.cpp两个文件实现对一个进程内COM组件的注册。

现对注册函数修改如下:

 

 

经过上述步骤DLL的注册已经实现,可以使用regsvr32 mycom.dll进行注册了。

其中CLSID_MyCOM, FriendlyName, VerIndProgID, ProgID等定义如下:

 

 

CLSID_MyCOM :组件ID

ProgID:程序ID

VerIndProgID:版本无关的程序ID

FriendlyName:组件描述

 

手动纯C++创建COM组件 <br />之前用过一点COM,但是是在ATL下用的,最近发现网上讲手动创建COM的文章,不是很详细,所以就分享下我的方法。<br /> <br />1.首先,建立一个win32项目<br /><br /> <br /> <br /> <br /> <br /> 选为DLL<br /> <br />2.接下来是接口定义和实现<br />我就实现了IClassFactory 和一个简单的实现加法运算的类ZCalc,当然他们都要提供IUnknown的方法的实现。<br />这两个类如何实现,任何一本COM的书都 阅读详情

相关推荐

C#免注册调用大漠dll

可以免注册调用大漠插件,大漠可用DLL文件,c# 调用大漠插件, 需配合dm.dll使用,无法单独使用

注册、反注册dll,regsvr32命令详解

Regsvr32命令修复系统故障实例使用过activex的人都知道,activex不注册是不能够被系统识别和使用的,一般安装程序都会自动地把它所 使用的activex控件注册,但如果你拿到的一个控件需要手动注册怎么办呢?如果修改注册表那就太麻烦了,在windows的system文件夹下有一 个regsvr32.exe的程序,它就是windows自带的activex注册和反注册工具。

攻城狮 2432

VC服务注册DLL(带示例)

自己封装的服务注册的DLL。 首先,随便写个MFC程序,然后,使用DLL将该程序变成一个可注册的服务程序(具体步骤里面的示例程序有。) 最后,注册之,可以在服务管理中看到那个程序。 DLL的功能有: 注册服务,注销服务,开启服务,停止服务,重设服务描述,获取服务状态。 很简单,常用的几个小功能而已。 这是第一个版本,如果不会使用,可以联系我的QQ563216774。

C++ --- Dll文件的生成与调用(二)之动态库注入技术

这里的操作是在C++ --- Dll文件的生成与调用(一)的基础上进行修改和拓展的 1、添加动态库入口函数的方式生成Dll文件,这个需要Windows的支持 DemoDll.h文件 #pragma once #include<Windows.h> // 引用Windows库 #ifdef DemoDll #define DemoDll_API __declspec(dllexport) // 导出 #else #define DemoDll_API __declspec(d

M2嵌入式 768

Uibot RPA中级认证实战:手把手教你用流程创造者搞定客户数据迁移(附验证码容错技巧)

本文详细介绍了Uibot RPA中级认证实战中的客户数据迁移工程化解决方案,特别针对验证码容错技巧和动态表格处理等核心挑战。通过环境准备、登录模块设计、数据提取技术及容错体系的系统讲解,帮助RPA实施工程师掌握高效稳定的自动化流程开发方法,提升企业数据迁移效率。

weixin_30505225的博客 229

低功耗和UPF介绍

参考[UPF]低功耗(Low Power Design)and UPF介紹

青春易逝,愿不负昭华,期待梦与远方 1万+

学懂C++(五十七): C++ 动态链接库(DLL)开发详解

学懂C++: C++ 动态链接库(DLL)开发详解

编程技术探索者,分享C/C++、C#、Java、数据库等开发经验,聚焦实战技巧与AI兴趣,助力编程爱好者成长。 5747

51单片机IAP技术详解:从原理到实战,实现远程程序自更新

在嵌入式系统开发中,程序更新是产品维护和功能迭代的核心需求。传统方式依赖外部烧录器,操作繁琐且无法远程进行。IAP(在应用中编程)技术则从原理层面解决了这一难题,它允许单片机在运行过程中通过特定接口(如串口)动态修改自身的Flash程序存储器。这项技术的核心价值在于赋予设备远程升级和自主维护的能力,极大地延长了产品生命周期并降低了维护成本。其典型应用场景包括智能家居控制器、工业数据采集模块和远程仪表等部署后不便拆卸的设备。本文以经典的51单片机(如STC89C52)为例,深入剖析IAP的实现,其中Bootl

weixin_29161719的博客 404

C++ COM注册这个DLL

DLL做好之后就可以实现注册代码了,注册之后客户端就可以通过注册表查询到该DLL并进行调用。下面是注册过程,其中使用的两个文件如下:   [c-sharp] view plaincopy //---------------------------------------------------------------------------

fin86889003的专栏 1434

逆向工程实战:解密AppleAccount的X-MMe-Nas-Qualify签名生成机制

本文通过逆向工程实战,详细解析了AppleAccount服务中X-MMe-Nas-Qualify签名的生成机制。作者利用Frida进行动态追踪定位签名源头,结合IDA Pro进行静态分析,并借助LLDB动态调试还原核心算法。文章最终分享了如何独立于苹果官方库,通过Python代码复现签名算法,为自动化测试和深度交互苹果服务的开发者提供了关键技术路径。

weixin_29323049的博客 707

2024年全国青少年信息素养大赛初赛真题(算法创意实践挑战赛C++小学组:带解析)

2024全国青少年信息素养大赛C++算法创意实践挑战赛初赛真题及解析

王老师青少年编程 2810

COM逐步教程

作者:Saurabh Dasgupta2001年3月6日原文链接:http://www.codeguru.com/Cpp/COM-Tech/activex/tutorials/article.php/c5567/介绍对于我来说,理解COM(Component Object Model,组件对象模型)绝不亚于一次长途旅行。我相信,每一个想要理解COM之后基本原理的程序员都必须使用普通的C++编写至少

马说@优快云 4391

【ROS机器人系统】实验4 ROS简单应用:激光SLAM与导航

ROS简单应用:激光SLAM与导航 (1)了解机器人和SLAM之间关系 (2)了解激光SLAM (3)了解gmapping和导航

南京大学软件工程硕士在读 2146

用c++实现com组件示例

 1、 创建一个win32  dll应用类型项目工程。2、  添加ComTest.h及ComTest.cpp文件,并在ComTest.h头文件包含Unknwn.h头文件3、  用guid.exe生成一个接口IID及com对象类CLSID代码如下://ComTest.h#pragma once #include  EXTERN_C const CLSID CL

SmartWan的专栏 6740

学Simulink——四开关 Buck‑Boost(FSBB)变换器的无缝模式切换仿真

本文详细介绍了使用Simulink实现四开关Buck-Boost(FSBB)变换器无缝模式切换的仿真方法。FSBB变换器因其输入输出同极性、单电感和双向能量流特性,广泛应用于光伏储能、USB-PD和车载电源等场景。文章重点解决了模式切换中的直通风险和占空比跳变问题,通过统一电压PI控制、Stateflow模式仲裁和200ns死区设计,实现了Buck(26V→24V)、Pass-Through(24V±1V)和Boost(22V)三种工作模式的无缝过渡。仿真结果显示输出电压稳定在12V±0.15V,切换过程无

amy_mhd的博客 66

AD快速上手笔记

本文详细介绍了使用Altium Designer从零创建PCB项目全流程:新建工程、绘制原理图(元件放置、连线、电源端口)、编译检查、生成PCB、布局布线(含铺铜)、DRC检查及输出Gerber与钻孔文件。重点强调了库选择、参数修改、层切换、铺铜设置和生产文件导出规范,确保设计无误,便于顺利下单生产。

qq_53529450的博客 42

COM技术初探(一)

目录 一. COM是一个更好的 C++    1. COM 是什么    2. 从 C++ 到 DLL 再到 COM       2.1 C++       2.2 DLL       2.3 COM 二. COM基础    1. COM基本知识       1.1 返回值HRESULT       1.2 初识idl       1.3 IUnkown接口

yongjunhe的专栏 5642

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

QT调用dumpcpp.exe让Active、dll生成.h.cpp

在Qt的安装目录下有dumpcpp.exe工具,可以将dll文件导出成Qt可以使用的.h和.C文件。执行下面的命令(dumpcpp.exe +空格+dll路径):dumpc...

jaken99的专栏 2140

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

老版QQ原生表情gif动态

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

BCB(C++Builder或Embarcadero XE)中调用托管DLL的方法(C++调用C#的DLL)

有时候我们的C++代码需要调用C#写的DLL,这就带来一个问题,非托管程序如何调用托管DLL?解决方法是:把C#写的DLL注册成COM组件,这样就可以非托管程序中调用了。详细操作步骤请见本图文教程。

~~ 3018

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

dll文件生成:普通dll和组件dll

打开项目 >>生成的文件>>xxx_i.h文件,确认它是否包含IMathCalculator接口的定义。如果没有,你需要:清理并重新生成项目:选择"生成" → “清理解决方案”然后"生成" → “重新生成解决方案”

weixin_37881839的博客 1154

用纯粹的C++编写COM组件

   本文提供一个完全用C++实现的进程内(DLL)COM服务器,不要ATL或MFC提供任何支持。用这种方式编写COM对象可以让你深入地洞察到COM处理进程内服务器的方法以及COM是如何创建类工厂的。利用本文提供的这个简单框架你可以实现很基本的COM组件,如外壳扩展(Shell Extensions)等。如果你在使用过程中发现了任何问题,请将它反馈到vckbase@public.hk.hi.c...

wangangie10 156

C++调用C# COM的完整流程(本地和客户机都能正常运行)

最近做了一个C++项目的开发,尝试使用了C#中创建图片的函数,因项目的特殊性C++只能为非托管,所以采用了C++调COM的方式来做。COM方式的优点是简单,缺点是需要在客户机上注册COM才能使用。在此做一点小的总结,让有需要的人少走弯路。3.1将开发C# dll所使用.NET Framework版本一致的RegAsm.exe 复制到C++生成的 exe文件夹中。因本人项目的特殊性,所以选择了低版本的.NET Framework2.0框架。在客户机上同样需要注册才能正常使用,这是COM的特性所在。

f1405602的博客 1482
上一篇: C++ COM实现之四 添加接口
下一篇: C++ COM实现之一 创建一个DLL
YearWang
博客等级 码龄20年 143粉丝 153原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值