Я пишу некоторые встроенные функции для удовольствия, и это вызывает исключение, с которым я никогда не сталкивался раньше. Самое смешное, что если я продолжу, после того, как исключение просто остановит поток выполнения моей программы, он вернет сумму двух целых чисел.
__declspec(dllexport) int addintegers(int one, int two)
{
int answer = 0;
__asm
{
mov eax, 0
push two
push one
call add
mov answer, eax
}
return answer;
} // Debugger stops here with exception message
Сообщение об исключении:
Ошибка проверки времени выполнения # 0 - значение ESP не было должным образом сохранено при вызове функции. Обычно это является результатом вызова функции, объявленной с одним соглашением о вызовах с указателем функции, объявленным с другим соглашением о вызовах.
// add function definition
int add(int one, int two)
{
return one + two;
}