如何将下面的保留堆栈不生成??
cl编译时候要什么参数??15:   int main(int argc, char* argv[])
16:   {
00401050   push        ebp
00401051   mov         ebp,esp
00401053   sub         esp,40h
00401056   push        ebx
00401057   push        esi
00401058   push        edi
00401059   lea         edi,[ebp-40h]
0040105C   mov         ecx,10h
00401061   mov         eax,0CCCCCCCCh
00401066   rep stos    dword ptr [edi]

解决方案 »

  1.   

    int  __declspec(naked) main(int argc, char* argv[])这样写好象可以,不过处理返回值时要自己用内联汇编搞定,细节就要自己考虑了,函数起动时不该破坏的寄存器自己保存,为安全着想,折中好了
      

  2.   

    这个是可以,不过好像过了我的要求,这个连
    push        ebp
    mov         ebp,esp
    这样的代码都没有了只是想把
    00401053   sub         esp,40h
    00401056   push        ebx
    00401057   push        esi
    00401058   push        edi
    00401059   lea         edi,[ebp-40h]
    0040105C   mov         ecx,10h
    00401061   mov         eax,0CCCCCCCCh
    00401066   rep stos    dword ptr [edi]
    这一段搞掉,有没有更好的办法呢??