0

在我的项目中,我需要调用许多第三方应用程序。我正在寻找一种以安全方式调用该部分的方法。

如果我在单独的进程中调用它们,我可以将我的主应用程序与第三方应用程序故障隔离开来。但我想找到一种方法在调用这些 DLL 时实现这种隔离。也许我可以在沙箱中调用 DLL(但我不知道如何,如果你帮助我如何:d)。

我想到了 .Net AppDomain,但我的项目是用 C++ 编写的,我在 C++ 中找不到 AppDomain 的任何概念。

如果您能帮助我找到实现此目标的有效方法,我将很高兴。

4

1 回答 1

2

有一个现有的 Windows 机制,COM。使用该设置CLSCTX_LOCAL_SERVER,在 COM 代理进程中加载​​一个 DLL COM 组件DllHost.EXE,并在您的进程中创建一个 COM 代理。DllHost.EXE 是您的沙箱;那里的任何故障都不会使您的进程中的代理崩溃。

如果第三方组件使用非 COM 接口,您可能需要自己添加一个精简的 COM 包装器。

于 2013-02-14T09:02:27.230 回答