Как получить преимущества /EHa с /EHsc для конкретной функции?
Если я знаю, что конкретный extern "C"
функция в моей программе (скажем, RaiseException
) является единственной функцией, которая вызывает исключения SEH, и я хочу, чтобы они были преобразованы в исключения C++, есть ли способ для меня "выборочно включить" /EHa
для этой функции, так что исключения преобразуются в CStructured_Exception
без вздутие живота или замедление остальной части программы, как обычно вызвано/EHa
?
1 ответ
Решение
Там, очевидно, нет опции компилятора, чтобы сделать это. Может быть:
void RaiseException() {
__try {
// do something that might throw here...
}
__except(EXCEPTION_EXECUTE_HANDLER) {
throw std::exception("structured exception");
}
}