Я использую _set_invalid_parameter_handler, чтобы переопределить поведение программы по умолчанию, когда функция CRT получает недопустимый параметр, который должен сбой с 0xc0000417 (STATUS_INVALID_CRUNTIME_PARAMETER)._invalid_parameter не получает никакой полезной информации в Release build
Это мой обработчик:
void my_invalid_parameter_handler(
const wchar_t * expression,
const wchar_t * function,
const wchar_t * file,
unsigned int line,
uintptr_t pReserved
)
{
Log(L"Invalid parameter detected");
Log(L"expression= %s", expression);
Log(L"function= %s", function);
Log(L"file= %s", file);
Log(L"line= %d", line);
Log(L"pReserved= %p", pReserved);
}
Я хочу, чтобы войти в информацию и отправить сообщение об ошибке. В сборке Debug я получаю полезную информацию с параметрами, но в сборке Release все параметры имеют NULL, что не очень полезно. Есть ли способ добавить полезную информацию в сборках Release?
'все параметры имеют значение NULL, если не используется отладочная версия библиотеки CRT. ' –
Спасибо. Хорошо, что отвечает на мой вопрос. Если вы опубликуете ответ, я выберу его в качестве правильного ответа. – sashoalm