Visual Studio — исключения C ++ в VC, без SEH

Можно ли использовать VC (предпочтительно одну из последних версий) и использовать исключения C ++, которые не реализованы поверх SEH?

ПРИМЕЧАНИЕ. — Я не имею в виду перехват исключений SEH с помощью предложения C ++ catch (/ Eha \ / Ehsc), я имею в виду использование исключений C ++ без использования исключений SEH в фоновом режиме.

0

Решение

По умолчанию исключения C ++ строятся поверх SEH.

Это можно изменить, но вам придется переписать большую часть времени выполнения и самостоятельно реализовать логику обработки кадров (читайте как: много сборок).

Из-за существенных различий между макетами стековых фреймов в 32-битных и 64-битных сборках (для x86) вы не сможете использовать слишком много кода между ними (64-битный EH также требует копания в другой области PE имидж).

Тем не менее, если на самом деле действительно нужно, просто убедитесь, что ваш код максимально переносим, ​​используя исключения, как и везде. Вы можете, по большей части, притворяться, что SEH даже там нет.

0

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


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