社区
ATL
帖子详情
vs2010ATL向导生成"服务(exe)"项目中添加的ATL简单对象(组件),客户端怎么访问?DLL组件访问方式访问不了
fayifu
2014-05-08 04:25:40
vs2010ATL向导生成"服务(exe)"项目中添加的ATL简单对象(组件),客户端怎么访问?DLL组件访问方式访问不了
...全文
238
4
打赏
收藏
vs2010ATL向导生成"服务(exe)"项目中添加的ATL简单对象(组件),客户端怎么访问?DLL组件访问方式访问不了
vs2010ATL向导生成"服务(exe)"项目中添加的ATL简单对象(组件),客户端怎么访问?DLL组件访问方式访问不了
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
fly4free
2014-05-08
打赏
举报
回复
也就是说,给接口添加方法那个界面中,以参数类型下拉列表框中的数据类型作为参数时,COM框架就帮助进程间通信了?
fayifu
2014-05-08
打赏
举报
回复
HRESULT hr; ITest* pTest; hr = CoCreateInstance(CLSID_Test, NULL, CLSCTX_SERVER, IID_ITest, (void**)&pTest); if (FAILED(hr)) { AfxMessageBox(_T("Failed to connect to server")); return; } 上面的代码调用不了
fayifu
2014-05-08
打赏
举报
回复
调用不了,能不能提供一个例子
oyljerry
2014-05-08
打赏
举报
回复
exe方式也是类似的 CoCreateInstance,QueryInterface,调用Interface
接口模式的制作
DLL
方法
向导
接口模式的制作
DLL
方法
向导
释放的目标文件夹就是
DLL
工程文件夹 释放完成后,输入
DLL
的文件名 优点: 1、
DLL
只导出固定的两个方法,获取接口和释放接口函数。 象普通类一样使用接口的方法; 2、释放非常干净,可实时删除
DLL
其他: 1、调用时,需要引用了接口定义文件,象普通类一样使用方便。但仅用于DELPHI 2、释放非常干净,释放后能实时删除
DLL
3、不要向
DLL
中
传入Application 若设置了Application,创建的窗体会自动显示 应用程序图标。 但彻底释放时,会使主窗体想消失。 因此,不要设置Application. 出现的独立窗口在任务栏上有窗口条,可以用 窗体不显示工具条的方法 隐藏 且建立的
对象
,如窗体等,都必须先要释放,否则释放
DLL
主程序会出错注:3、共享数据库
组件
如TAdoconnection
用
VS
2010
生成
OCX控件.zip
新建
项目
,选择 MFC
DLL
这里随便选,我选择共享 MFC
DLL
添加
类
添加
一个
ATL
简单
对象
下一步,下一步,完成 实现接口:IObjectSafetyImpl public IObjectSafetyImpl
添加
映射 类视图 IReader
添加
方法
向导
自动
生成
接口代码 在接口实现代码
中
加入一个 MessageBox 编译工程 Ocx 代码就写完了,接下来写测试程序: 新建一个 WinForm
添加
引用 编写测试代码 测试运行 下面我们来尝试通过网页调用 OCX 查看注册表文件 Reader.rgs IE 浏览器打开任意网址,F12 呼出调试工具,切换到脚本,控制台窗口 控制台执行:var a = new ActiveXObject("Reader"); 控制台执行:a.CallFun('1234'); 网页
中
插入以下脚本并测试:
COM实验报告.pdf
--Shine Chen 1 进程内 COM
组件
的实现 1 实验目的 Microsoft 的 COM(Component Object Model)是目前比较流行的软件开发技术之一,它是基于
组件
模型的一种规范。本实验实际演示一个 COM
组件
的应用,加深对 COM
组件
理论知识的理解。为
简单
起见,使用的是进程内 COM
组件
,即 COM 的
服务
器和
客户端
在同一个进程
中
。 2 实验要求 本实验设计可以参照本人的论文《基于 COM
组件
技术的研究》的内容,也是对本论文的实践检验。 相似之处不在赘述。总体要求是设计一个 COM
组件
的
服务
器和一个
客户端
。
服务
器实现两个接口:数 字加法和字符串连接操作。
客户端
是基于对话框的 MFC 程序, 有一个友好的界面来测试 COM
组件
服务
器的功能。 3 实验平台和工具 Windows 操作系统、VC++6.0。 4 实验步骤 4.1 COM
服务
器 为了方便本实验 COM
服务
器实现使用的是
ATL
(ActiveX Template Library)活动模板库,是一种 微软程序库,也是一套 C++模板库。使用
ATL
能够快速地开发出高效、简洁的代码,同时对 COM
组件
的开发提供最大限度的代码自动
生成
以及可视化支持。 COM
服务
器的
对象
如下图 Object IUnknown IMath IStr 图 1 COM
服务
器
对象
具体的步骤如下: 1. 新建一个
ATL
工程 (Project) 。命名为 MyCom(如图 2),并选择
DLL
方式
(如图 3)。 2 图 2 新建
ATL
工程 图 3 选择
DLL
说明: Dynamic Link Library (
DLL
) 表示建立一个
DLL
的
组件
程序。
Exe
cutable (
EXE
) 表示建立一个
EXE
的
组件
程序。 Service (
EXE
) 表示建立一个
服务
程序,系统启动后就会加载并执行的程序。 Allow merging of proxy/stub code 选择该项表示把"代理/存根"代码合并到
组件
程序
中
,否则 需要单独编译,单独注册代理存根程序。 Support MFC 支持 MFC Support MTS 支持事务处理,即是否支持 COM+ 功能。 2. 增加
ATL
对象
类: 选择菜单 Insert\New
ATL
Object\Object 分类\Simple Object
项目
(见图 4) 。 3 图 4 选择建立
简单
COM
对象
说明:Object 普通
组件
。其
中
可以选择的
组件
对象
类型很多,但本质上,就是让
向导
帮忙加上一些 默认接口。 3. 增加自定义类 CMath(接口 IMath),见图 5。 图 5 填写类名 4. 填写属性接口,见图 6。 图 6 选择属性 4 5.
添加
接口成员函数 图 7 调出增加接口方法的菜单 图 8 增加接口函数 Add 说明: [in]表示参数方向是输入; [out]表示参数方向是输出; [out,retval]表示参数方向是输出,同时可以作为函数运算结果的返回值。 一个函数
中
,可以有多个[in]、[out],但[retval]只能有一个,并且要和[out]组合后在最后一个位 置。 图 9 接口函数 5 实现代码如下: STDMETHODIMP CMath::Add(long n1, long n2, long * pnVal) { // TODO: Add your implementation code here * pnVal = n1 + n2; return S_OK; } 6.
添加
第二个接口 IStr。 完成上述步骤后,打开 IDL 文件(双击 IMath 接口),手工
添加
代码,其
中
UUID 的每个
组件
,每 个接口都会不同。在下面的代码
中
加入黑体部分: … //接口的完整描述 [ object, //表示本块描述的是一个接口 uuid(E34275D2-B3CA-4BCA-9AC7-0713ABE2F876), helpstring("IMath Interface"), //说明文字 pointer_default(unique) //定义接口函数
中
参数所使用指针的默认属性 ] interface IMath : IUnknown //接口 IMath 派生自 IUnknown { //接口函数列表 [helpstring("method Add")] HRESULT Add([in] long n1, [in] long n2, [out,retval] long * pnVal); }; //增加接口代码 [ object, uuid(36A75A3F-94DE-47fe-AF51-0C0C65316A03), // 手工产生的 IID h
ATL
创建Com
组件
连接点Demo
创建Alt的
DLL
时,注意不要选 安全生命开发周期SDL,否则
添加
ATL
类时会失败,此例子根据https://blog.csdn.net/zj510/article/details/39056097来,另外
添加
新接口时,如果不熟悉,最好使用
向导
,否则自己要在多处
添加
代码。
COM与COM+从入门到精通(pdf版本,含源码)
第一部分 了解COM 第1章 COM概述 何谓CoM COM术语 COM利与弊 COM的好处 COM的局限性 COM
组件
与接口 何谓接口 接口特征 接口类型 接口规则 接口设计 COM
组件
的实现规则 实现IUnknown规则 内存管理规则 引用计数规则 COM激活 COM类型 COM客户机 COM
服务
器 ActiveX控件 COM与面向
对象
技术 包装 抽象 多态 继承 COMTrader应用程序 小结 第2章 由VC++建立并使用COM
服务
器 IDL文件 建立第一个COM
服务
器 定义自定义接口 实现IUnknown和自定义接口 完成COM
服务
器
生成
测试客户机 用
ATL
建立COM
服务
器 关于
ATL
用
ATL
建立进程内COM
服务
器 用
ATL
建立进程外COM
服务
器 线程与COM
服务
器 Win32多线程应用 线程COM
组件
自动化与IDispatch 用VC++实现IDispatch
ATL
与自动化 Automation数据类型 再谈类型库 C++自动化客户机 VB自动化客户机 小结 第3章 用VB建立并使用COM
服务
器 选择COM
项目
设计接口 描述接口 浏览接口
生成
对象
使用ClassBuilder 增加属性 增加方法 增加事件与枚举 使用ActiveXDataObject(ADO) 在
服务
器
组件
中
使用Recordset
对象
在客户机
组件
中
使用ADOR
生成
断开的Recodset
生成
自己的RecodsctS 使用用户定义类型 错误处理
服务
器客户机错误处理 使用VBErr.Raise机制 在VB
中
使用线程模型 设置线程模型 了解再入性与公寓 小结 第二部分 COM与Internet 第4章 在VC++
中
建立并使用ActiveX控件 ACtiveX控件概还 属性与方法 控件与容器通信 事件与连接点 建立第一个控件
生成
控件 测试控件 增加方法 增加属性 增加事件 增加属性页 允许属性保持 使用控件 建立复合控件 增加复合控件 增加功能 增加事件 处理复合控件事件 处理错误 使用控件 小结 第5章 在VB
中
建立并使用ActiveX控件 VB控件简介 约束与无约束控件 控件
生成
技术 属性类型 方法 属性配置 过程属性 环境属性配置 运行时只读属性 只在运行时有效的属性 扩展属性 容器属性 合成控件属性 可关联属性 持续与属性包 属性包 使用ActiveX控件界面
向导
了解控件寿命
生成
ActiveX控件
生成
无约束控件
生成
设计时数据约束控件
生成
运行数据约束控件 小结 第6章 用VC++建立InternetCOM
组件
IEActiveX控件 轻量级控件 安全控件 持续属性 文档
对象
模型编程 活动
服务
器
组件
活动
服务
器页面 ASP页面的COM
组件
小结 第7章 用VB建立InternetCOM
组件
无窗口控件 ActiveX控件容器的线程模型 ActiveX控件的安全性 Web页面
访问
VBDHTML
项目
DHTML
项目
基础 DHTML应用程序样本 VBIIS应用程序 WebClass 一个IIS应用程序样本 设计控件 设计控件与HTML文件 样本设计控件 小结 第三部分 了解DCOM 第8章 DCOM概述 何谓DCOM 为什么使用DCOM DCOM操作 DCOM
组件
位置 进程内或进程外
组件
代理 RPC(RemoteProcedureCall,远程过程调用) 调动 数据传递 DCOM配置实用程序 DCOM应用程序的安全机制 验证 授权 加密 整性检查 小结 第9章 用VC++建立DCOM
服务
器 标准与自定义调动 标准调动 自定又调动 网络通伯 远程激活 AppID注册表项 可配置AppID注册表项参数 IUknown优化 DCOM与NT
服务
NT
服务
解剖 基于NT
服务
的COM
服务
器 小结 第10章 用VB建立DCOM
服务
器 应用程序
对象
模型 何谓
对象
模型 如何
生成
对象
模型 DCOM设计准则与技术 再论调动 按数值与按引用 DCOM进程外
服务
器 建立DCOM
组件
增加测试客户机 IIS应用程序 增加WebClasses 使用模板 增加自定义Webltems 远程错误处理 小结 第四部分 了解COM++ 第11章 COM++概述 COM与WindowsDNA 用户界面层技术
中
间层技术 数据库层技术
组件
服务
配置 事务处理 排队
组件
(QC) 实时结构的限制 事务性消息排队 排队
组件
结构 排队
组件
故障恢复 QC安全性 动态负荷平衡
对象
地 小结 第12章 用VC++建立COM++
组件
ADO编程 ADO与OLEDB VC++
中
的ADO VC++的ADO扩展 建立COM++应用程序 温习IObjectContext接口 用
ATL
建立COM++
组件
编制基于角色的安全性 处理COM+事务 控制事务结果 指定事务属性 确定事务情境 传递接口指针 共享状态 建立事务性COM+
组件
小结 第13章 用VB建立COM+
组件
了解事务 事务与多层应用程序 COM+与事务 事务属性:ACID COM+系统简介 COM+运行环境 COM+ComponentServices COM+接口 资源分配器 应用程序
组件
探索COM+编程模型 COM+
组件
作为COM
DLL
基本COM+编程规则 COM+API 用VB编程COM+
对象
描述表 COM+
组件
的生命周期 ObjectControl接口 MTS活动 COM+
中
生成
对象
安全引用
组件
之间的参数传递 数据类型 使用分布式事务 分布式事务协调器(MSDTC) COM+事务的工作 事务与有状态
对象
使用共享属性管理器(SPMSharedProperyManager) 小结 第14章 了解MSMQ 何谓MSMQ MSMQ的好处 MSMQ
组件
队列 消息 MSMQ
对象
模型 MSMQ设置 MSMQ基础 消息发送 消息接收 MSMQ事件 MSMQ事务 小结 第五部分 高级COM与COM+ 第15章 VC++与VB
中
的COM+
服务
了解COM+激活 描述表包装器 激活顺序 使用即时(JIT)激活 使用
对象
构造
中
性公寓简介 了解同步域 表示事务状态 取得
对象
信息 使用
对象
地
对象
池的好处
对象
地要求
对象
地配置 使用排队
组件
QC限制 QC配置 QC调用 QC播放控件 使用负荷平衡 负荷平衡要求 负荷平衡配置 小结 第16章 COM与COM+安全性 何谓安全性 WindowsNT安全简介 NT验证 NT扮演 NT
访问
控制 COM安全结构 验证
访问
控制 启动权限 标_ 扮演与掩盖 安全总括 COM+安全 COM+说明性安全 COM+角色 编程COM与COM+安全 整个进程安全 接口级安全 激活安全
服务
器方安全 调用描述表安全信息 SecuntyProperty信息 安全性与数据库
访问
小结 第17章 Windows2000
中
的新COM特性 同步机制 COM同步API COM同步接口 异步COM 异步接口构造 异步接口调用 关于异步
服务
器与客户机 让
服务
器进行异步处理 调用序列化与自动完成 COM管道 COM管道接口 异步管道与提前读取 调用
对象
与调用取消 调用取消请求 调用取消处理 轻量级处理器 标准LWH 自定义LWH 小结 第六部分 调试与部署COM和COM+应用程序 第18章 调试与剖析COM和COM+应用程序 调试VB
组件
调试MTS
组件
调试COM+
组件
使用条件编译 调试VC++
组件
用VisualStUdioAnalyzer剖析 小结 第19章 部署COM与COM+应用程序 DCOM应用程序部署 配置DCOM
服务
器 配置DCOM客户机 在Internet上部署 Internet上部署与包装 签名CAB文件 许可ActiveX控件 自动化COM+配置 使用COMAdmin接口与集合 配置COM+应用程序 配置
组件
配置角色 部署COM+应用程序 小结
ATL
3,245
社区成员
48,539
社区内容
发帖
与我相关
我的任务
ATL
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
复制链接
扫一扫
分享
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章