社区
ATL
帖子详情
我建立atl工程,删除了proxy/stub工程也能工作。那我什么时候才需要proxy/stub?
zerueiru
2016-05-20 03:07:41
是不是in-proc的com组件,都是用系统的proxy/stub机制?
我新建一个ATL,会顺带创建proxy/stub工程-->它产生的东西什么时候才需要被用到?
并且,既然删掉了proxy/stub我的com也能工作,那么我该如何配置/编程,才能用到我自己的proxy/stub工程里面的东西(做marshalling?)
谢谢,搞不清楚这个proxy/stub到底有什么用。还请指教一下。
...全文
197
4
打赏
收藏
我建立atl工程,删除了proxy/stub工程也能工作。那我什么时候才需要proxy/stub?
是不是in-proc的com组件,都是用系统的proxy/stub机制? 我新建一个ATL,会顺带创建proxy/stub工程-->它产生的东西什么时候才需要被用到? 并且,既然删掉了proxy/stub我的com也能工作,那么我该如何配置/编程,才能用到我自己的proxy/stub工程里面的东西(做marshalling?) 谢谢,搞不清楚这个proxy/stub到底有什么用。还请指教一下。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
蒋晟
2016-06-10
打赏
举报
回复
列集的时候需要。 列集在跨进程或者跨线程套间的时候会发生。
zerueiru
2016-06-08
打赏
举报
回复
引用 2 楼 wwwfffhhh 的回复:
如果你做的是EXE程序的时候会用到
对于exe程序,我删掉p/s工程看起来也没事啊。 而且我建立dll工程也会生成p/s工程,这是什么情况呢?
牧童吃五谷
2016-06-02
打赏
举报
回复
如果你做的是EXE程序的时候会用到
Jaccio
2016-05-27
打赏
举报
回复
帮忙顶一下~~~~
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 的组件程序。 Executable (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
What's the point of _MERGE_
PROXY
STUB
?
9down votefavorite 2 I have generated an
ATL
COM object using VS2008 and the code contains references to a definition called _MERGE_
PROXY
STUB
(because I chose the 'Merge
proxy
/
stub
'
使用WTL进行Windows桌面应用开发-第一部
基于Windows平台的
ATL
/WTL桌面应用程序开发.使用C/C++作为开发语言, 开发Windows本地桌面程序.WTL界面库是MFC的替代选择, 是Win32界面编程的薄封装,可以说学会WTL开发即学会了Win32界面开发。适合中小型公司开发基于C/C++语言的客户端项目, 因为WTL可以进行快速开发,不
需要
其他语言.由浅入深介绍WTL桌面开发涉及到的原理和技术, 从简单界面到自定义界面,自定义按钮表格都有介绍。在绘制窗口元素如文本,图形介绍了GDI和GDI+的常用的开发技巧。介绍了项目开发中遇到的一些细节问题.WTL配置少, 只有头文件,不
需要
编译为库, 性能高,不依赖第三方库,文件小, 运行快,调试方便, 升级方便。
建立
ATL
DLL
工程
建立
ATL
DLL
工程
Dynamic Link Library(DLL) 表示
建立
一个 DLL 的组件程序。 Executable(EXE) 表示
建立
一个 EXE 的组件程序。 Service(EXE) 表示
建立
一个服务程序,系统启动后就会加载并执行的程序。 Allow merging of
proxy
/
stub
code 选择该项表示把“代理/存根”代码
ATL
调度(Marshaling)
调度(Marshaling): 进程和计算机之间进行函数参数和返回值传输的一个过程。 核心:
proxy
/
stub
(代理 / 存根) 当
需要
实现调度时,COM在客户程序进程地址空间创建一个
proxy
对象, 在组件的地址空间创建一个
stub
对象。 客户程序与
proxy
交互,就像客户机和组件之间存在直接连接一样 组件与
stub
交互,就像组件与客户程序之间存在之间连接一样 这...
ATL
3,245
社区成员
48,537
社区内容
发帖
与我相关
我的任务
ATL
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
复制链接
扫一扫
分享
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章