Как получить преимущества /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");
   }
}
Другие вопросы по тегам