如何在特定功能上使用/ EHsc获得/ EHa的好处?

时间:2012-08-13 23:12:26

标签: winapi visual-c++ seh structured-exception

如果我知道我的程序中的特定extern "C"函数(比如RaiseException)是引发SEH异常的唯一函数,并且我希望它们转换为C ++异常,那么有没有办法我为该函数“有选择地启用”/EHa,以便异常转换为CStructured_Exception而不会膨胀或减慢程序的其余部分normally caused by /EHa

1 个答案:

答案 0 :(得分:1)

显然没有编译器选项可以做到这一点。也许:

void RaiseException() {
   __try {
      // do something that might throw here...
   }

   __except(EXCEPTION_EXECUTE_HANDLER) {   
      throw std::exception("structured exception");
   }
}