What is wrong with this __usercall wrapper?
问题 /* * Wrapper from * int func(int a, int b, int c, unsigned int d, signed int e); * to * int __usercall func<eax>(int a<eax>, int b<ecx>, int c, unsigned int d, signed int e); */ int func(int a, int b, int c, unsigned int d, signed int e) { __asm { push e push d push c mov ecx, b mov eax, a call __usercall_func // access violation somewhere inside here add esp, 12 } } 回答1: You cannot perform ret yourself from within an inline asm block, because you don't know what the outer function has done