-1

如果我知道extern "C"我的程序中的特定函数(例如,RaiseException)是引发 SEH 异常的唯一函数,并且我希望它们转换为 C++ 异常,那么我有什么方法可以“选择性地启用”/EHa该函数,以便异常被转换为CStructured_Exception没有膨胀或减慢程序的其余部分,通常是由/EHa?

4

1 回答 1

1

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

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

   __except(EXCEPTION_EXECUTE_HANDLER) {   
      throw std::exception("structured exception");
   }
}
于 2012-08-13T23:49:52.887 回答