Использование проверки кода во время выполнения без библиотеки среды выполнения C
Если компоновка осуществляется без библиотеки времени выполнения языка C, с помощью /NODEFAULTLIB, и при этом необходимо использовать проверки времени выполнения, нужно осуществлять компоновку с RunTmChk.lib.
_RTC_Initialize инициализирует программу для осуществления проверок во время выполнения. Если компоновка осуществляется без библиотеки времени выполнения языка C, перед вызовом _RTC_Initialize необходимо проверить, компилируется ли программа с проверками во время выполнения:
#ifdef __MSVC_RUNTIME_CHECKS
_RTC_Initialize();
#endif
Если не осуществлять компоновку с библиотекой времени выполнения C, то необходимо определить функцию с именем _CRT_RTC_INITW. _CRT_RTC_INITW устанавливает пользовательскую функцию как используемую по умолчанию функцию сообщений об ошибках, как показано ниже:
// C version:
_RTC_error_fnW __cdecl _CRT_RTC_INITW(
void *res0, void **res1, int res2, int res3, int res4)
{
// set the error handler.
return &MyErrorFunc;
}
// C++ version:
extern "C" _RTC_error_fnW __cdecl _CRT_RTC_INITW(
void *res0, void **res1, int res2, int res3, int res4)
{
// set the error handler:
return &MyErrorFunc;
}
После установки функции сообщения об ошибках по умолчанию можно установить дополнительные функции, сообщающие об ошибках, с помощью _RTC_SetErrorFuncW. Дополнительные сведения см. в разделе _RTC_SetErrorFuncW.
См. также
Задачи
Практическое руководство. Настройка проверок во время выполнения машинного кода