以安全模式调用dll

时间:2013-02-14 07:16:56

标签: c++ dll exception-handling

在我的项目中,我需要拨打许多第三方应用。我正在寻找一种以安全的方式打电话的方式。

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

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

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

1 个答案:

答案 0 :(得分:2)

现有的Windows机制,COM。使用CLSCTX_LOCAL_SERVER设置,在COM代理进程DllHost.EXE中加载DLL COM组件,并在您的进程中创建COM代理。 DllHost.EXE是你的沙盒;任何过错都不会导致代理崩溃。

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