__declspec(naked) 是告诉编译器 不要对函数进行优化 函数的所有实现包括堆栈的平衡 参数的压栈 ebp的赋值 还原 都要我们来做 甚至是ret / ret n 都要我们来做 演示代码 int add ( int a, int b ) { return a + b; } // 有压栈,又要有出栈,这样才能使堆栈平衡。 __declspec(naked)add2( int a, int b ) { __asm { push ebp mov ebp,esp push [ebp + 0ch] push [ebp + 8h] call add mov edx, [ebp + 8h] pop edx mov edx, [ebp + 0ch] pop edx mov esp, ebp pop ebp ret 0x8 } }