Я должен использовать операторы __try
и __except
для обработки возможной памяти errors
, как показано ниже:
#include <Windows.h>
#include <Shlwapi.h>
#include <stdio.h>
INT main()
{
CHAR a[5] = { 0 };
// literal string
CHAR *b = "hello12345";
__try
{
StrCpyA(a, b);
}
__except ((GetExceptionCode() == EXCEPTION_ARRAY_BOUNDS_EXCEEDED) ? EXCEPTION_EXECUTE_HANDLER : EXCEPTION_CONTINUE_SEARCH)
{
printf("Array bounds exceeded!");
}
return 0;
}
Во время работы программа неожиданно останавливается с ошибкой при использовании __try
и __except
И в блоке __except()
исключений не возникло!
Кстати, я использую Windows API typedef's
Любое предложение?