Oops. What's the meaning of this error:
Code:
#include <stdio.h>
void lltest(long long ll) {
printf("%I64d ??\n", ll);
}
int main(void) {
//lltest(100000000001); //OK
long long ll = 100000000001;
printf("%I64d OK\n", ll);
__asm {
push ll
call lltest
add esp, 4 //clean up call stack
};
/*
Run-Time Check Failure #0 - The value of ESP was not
properly saved across a function call. This is usually
a result of calling a function declared with one
calling convention with a function pointer declared
with a different calling convention.
*/
getchar();
return 0;
}
What's happened here? Any clue please?
What should I do to get the lltest function to work?
Thanks in advance.
EDIT:
This even wouldn't work.
Code:
void __stdcall lltest(long long ll) {