我的C ++应用程序正在使用第三方DLL,它为某些外部软件提供API。这里没有其他选择。这是我必须使用的软件,API和DLL。
我正试图对我的界面进行防弹。当API调用变坏时,DLL会执行立即终止整个过程的操作。我把这个调用包装在try / catch中,我使用的是我在其他项目中成功使用的SEH翻译类(和/ EHa被选中),我甚至处理std :: unexpected。这些都没有被触发。一旦我调用DLL函数,该过程就结束了。
我应该采取哪些其他途径来保护我的流程?我想避免为这个API分离子进程。
答案 0 :(得分:2)
保护自己免受DLL API出错的唯一确定方法是分叉子进程并让该进程执行DLL交互(请参阅firefox和plugin-container)。例如,如果DLL调用exit
,那么你可以捕获它。