在我的项目中,我需要拨打许多第三方应用。我正在寻找一种以安全的方式打电话的方式。
如果我在单独的过程中调用那些,我可以将我的主应用程序与第三方应用程序故障隔离开来。但我想找到一种方法来调用这些DLL进行隔离。也许我可以在沙箱中调用DLL(但我不知道如何,如果你帮我怎么做:d)。
我认为.Net AppDomain但我的项目是用C ++编写的,我在C ++中找不到AppDomain的任何概念。
如果能帮助我找到实现这一目标的有效方法,我将很高兴。
答案 0 :(得分:2)
现有的Windows机制,COM。使用CLSCTX_LOCAL_SERVER
设置,在COM代理进程DllHost.EXE
中加载DLL COM组件,并在您的进程中创建COM代理。 DllHost.EXE是你的沙盒;任何过错都不会导致代理崩溃。
如果第三方组件使用非COM接口,您可能需要自己添加一个瘦COM包装器。