进程外Com组件实现

sanshui 2013-01-09 11:34:02
应用场景:现在整个程序需要在64位下运行,但有一部分模块功能(使用第三方库)只有32位,所以准备使用进程外com来实现,不需要考虑进程通信的问题。

预期解决方案:com中一个接口提供一个对象(相当于通信对象),这个对象是唯一的,在64位进程中使用CoCreateInstance创建,但这个对象需要在queryInterface另一个接口时,new出来一个其他类的对象给外部使用(可能会有多次query)。

问题:1.不熟悉com的编程,这个解决方案可以实现嘛?是否有更优的解决方案?
2.使用ATL很多东西都封装起来了,QueryInterface可以自定义? 多接口不同类对象ATL实现com复杂?
...全文
266 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
sanshui 2013-01-21
  • 打赏
  • 举报
回复
已实现此功能,结贴
sanshui 2013-01-14
  • 打赏
  • 举报
回复
楼上这样不会更麻烦 com本身有这种机制可以实现函数调用 其实上面可能表述有些不清晰,也不是通信对象,只是另外一种对象的创建需要使用到“通信对象”的函数返回值 现在的在进行的实现方式是: 进程外com组件提供出两个接口,用同一个类实现这两个接口,外部根据需要创建不同接口对象,之前 钻了一个类只能实现一个接口的牛角
leez0301 2013-01-11
  • 打赏
  • 举报
回复
64位程序调用32的com控件? 再加一个32位进程做媒介,搞数据传输吧。
sanshui 2013-01-09
  • 打赏
  • 举报
回复
引用 1 楼 ynb119 的回复:
应该不可以,给代理的参数都无法传对。
你说的参数传对 是指64位进程和32位com组件之间的参数传递? 这个是可以的
枫桦沐阳 2013-01-09
  • 打赏
  • 举报
回复
应该不可以,给代理的参数都无法传对。

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧