Как остановить исключение процесса убийства в DLL?

Мое приложение на C ++ использует стороннюю DLL, которая предоставляет API для некоторого внешнего программного обеспечения. Здесь нет других вариантов. Это программное обеспечение, API и DLL, которые я должен использовать.

Я пытаюсь защитить свой интерфейс от бомб. Когда вызов API выходит из строя, DLL делает то, что сразу убивает весь процесс. Я обернул вызов в try / catch, я использую класс перевода SEH, который я успешно использовал в других проектах (и / EHa выбран), и я даже обрабатываю std :: непредвиденный. Ничего из этого не срабатывает. Как только я вызываю функцию DLL, процесс заканчивается.

На какие другие пути я должен обратить внимание, чтобы защитить свой процесс? Я хочу избежать выделения дочернего процесса только для этого API.

-1

Решение

только Безошибочный способ защитить себя от ошибки DLL API — это запустить дочерний процесс и заставить этот процесс взаимодействовать с DLL (см. firefox и plugin-container). Например, если DLL вызывает exit ничто, что вы делаете, не поймает это.

2

Другие решения


По вопросам рекламы [email protected]