C++ 在安全模式下调用dll

C++ 在安全模式下调用dll,c++,dll,exception-handling,C++,Dll,Exception Handling,在我的项目中,我需要调用许多第三方应用程序。我正在寻找一种安全的方法来调用该部分 如果我在单独的过程中调用这些,我可以将我的主应用程序与第三方应用程序隔离。但我想找到一种方法,将这种隔离称为DLL。也许我可以在沙盒中调用DLL(但我不知道如何调用,如果您帮助我如何调用:d) 我想.NET AppDealm,但是我的项目是用C++编写的,在C++中找不到任何AppDealm的概念。 如果你能帮我找到一个有效的方法来实现这一点,我会很高兴的。有一个现有的Windows机制来实现这一点,COM。通过设

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

如果我在单独的过程中调用这些,我可以将我的主应用程序与第三方应用程序隔离。但我想找到一种方法,将这种隔离称为DLL。也许我可以在沙盒中调用DLL(但我不知道如何调用,如果您帮助我如何调用:d)

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


如果你能帮我找到一个有效的方法来实现这一点,我会很高兴的。

有一个现有的Windows机制来实现这一点,COM。通过设置
CLSCTX\u LOCAL\u SERVER
,将在COM代理进程
DllHost.EXE
中加载DLL COM组件,并在进程中创建COM代理。DllHost.EXE是您的沙盒;在您的过程中,任何故障都不会使代理崩溃


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

您希望实现一个通用dll加载器,该加载器将加载指定的第三方dll,并通过RPC与主机进程通信。不确定这样的开源程序是否已经存在,但您可能需要研究它。@Joseph:不确定为什么需要实现一个通用DLL加载程序;窗户一个就够了。