-1

我的 C++ 应用程序正在使用为某些外部软件提供 API 的第 3 方 DLL。这里没有其他选择。这是我必须使用的软件、API 和 DLL。

我正在尝试对我的界面进行防弹。当 API 调用出错时,DLL 会立即终止整个进程。我已经将调用包装在 try/catch 中,我正在使用我在其他项目中成功使用的 SEH 翻译类(并且选择了 /EHa),我什至正在处理 std::unexpected。这些都不会被触发。一旦我调用 DLL 函数,该过程就结束了。

我应该寻找哪些其他途径来保护我的流程?我想避免只为这个 API 分离一个子进程。

4

1 回答 1

2

保护自己免受 DLL API 出错的唯一可靠方法是派生一个子进程并让该进程进行 DLL 交互(请参阅 firefox 和插件容器)。例如,如果 DLL 不调用exit任何操作,您将捕捉到它。

于 2015-04-09T16:57:22.090 回答