Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我已经看到 Microsoft COM 和 XPCOM,至少从我到目前为止所阅读和收集的内容来看,组件中接口的实现基本上必须在派生所有虚拟接口的单个类中。它是否正确?我错过了什么?
有没有办法让多个对象(可能在单独的 DLL 中)每个都提供它们的功能,并且仍然能够使用 QueryIterface 在它们之间自由转换?
我正在寻找的是具有一些功能的组件,但仍然允许外部客户端代码使用(可能)新接口创建组件的新扩展。理想情况下,这应该在不泄露组件的当前来源及其实现的情况下发生。
这应该是可能的,尽管标准的高级包装器可能不支持。大多数包装器(ATL、MFC 等)仅支持将 COM 对象映射到单个类。但是,QueryInterface 可以返回不同的指针并调用 COM 对象代码,因此第一个 COM 对象可以加载不同的 DLL,实例化不同的对象,并返回指向其接口 (vtable) 的指针。
据我所知,这一切都是可能的,您可能会自己编写很多低级胶水代码。
是的,ATL 支持分离接口 这允许在另一个类中实现接口,该类仅在请求接口时才实例化。由于它只传递一个接口,我想它也可以放入一个单独的 DLL 中。
(也可以被请求一次后缓存)
我有这个 ant talk 将 cgi-dir 复制到 cgi-dest。
<exec executable="cp" failonerror="yes"> <arg value="-a" /> <arg value="${cgi-dir