gpt4 book ai didi

c++ - 一个组件的整体实现可以分为两个对象吗?

转载 作者:太空宇宙 更新时间:2023-11-04 12:28:57 24 4
gpt4 key购买 nike

我在 Microsoft COM 和 XPCOM 中看到,至少从我目前阅读和收集的内容来看,组件中接口(interface)的实现基本上必须在派生所有虚拟接口(interface)的单个​​类中。它是否正确?我错过了什么?

有没有办法让多个对象(可能在单独的 DLL 中)每个对象都提供它们的功能,并且仍然能够使用 QueryIterface 在它们之间自由转换?

我正在寻找的是拥有一个具有某些功能的组件,但仍然允许外部客户端代码创建具有(可能)新接口(interface)的组件的新扩展。理想情况下,这应该在不泄露组件及其实现的当前源代码的情况下发生。

最佳答案

这应该是可能的,尽管标准的高级包装器可能不支持。大多数包装器(ATL、MFC 等)只支持将 COM 对象映射到单个类。但是,QueryInterface 可以返回一个不同的指针并调用 COM 对象代码,因此第一个 COM 对象可以加载一个不同的 DLL,实例化一个不同的对象,并返回一个指向它的接口(interface)(vtable)的指针。

据我所知,这一切都是可能的,您很可能会自己编写大量低级粘合代码。

关于c++ - 一个组件的整体实现可以分为两个对象吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/235570/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com