Документация гласит: "Вы должны использовать / EHa при использовании _set_se_translator.". Мой вопрос: следует ли / EHa использовать для всех файлов в проекте / всех файлов в проекте, которые перехватывают исключения илипросто в файле, который вызывает _set_se_translator?
После проверки я должен не согласиться с тем, что было сказано ранее обо всех экземплярах, которые необходимо скомпилировать с / EHa. Я сделал небольшую программу с:
код сбоя
__declspec(dllexport) void crashMe() { *((int*)0)=0; }
в DLL, скомпилированной без какой-либо обработки исключений
Тогда
_set_se_translator
catch(...)
Вам это нужно не только для функций, перехватывающих исключения, но и для функций, которые их генерируют и распространяют. Фактически сам вызов _set_se_translator, вероятно, не нужно компилировать с / Eha, но зачем быть непоследовательным?