我在 C ++ 中制作了 Wrapper DLL ,公开了一些在调用时连接到的函数 WMI 并在那里执行一些方法。
问题是, 主机应用程序 是否已经或将要调用CoInitialize/Ex
尚不清楚,因此我正在寻找某种< strong> 隔离/沙盒 方法让 DLL 运行它自己的 COM / WMI 独立于主机应用程序。
我仍然不完全熟悉 C ++线程模型 ,但是可以有多个独立的 COM / WMI DLL中的实例?
我能想到的就是克服这个问题:
构建连接到 COM / WMI 的外部应用程序,并允许使用共享内存进行调用。然后 DLL 可以与共享内存部分进行通信。 (是否可以使用共享内存调用方法或函数?)。这样做的缺点是需要运行其他流程来充当中间人与 WMI 进行通信,而且似乎不是实现这一目标的最佳方式。
如果直接来自 DLL ,会好得多。
是否可以创建独立的 COM / WMI 设置,让CoInitialize/Ex
在 DLL的范围内运行 独立于主机应用程序?有什么建议如何解决这个问题?
问候和感谢。