いくつかの関数呼び出し方式

2477 ワード



        

  __cdecl  C Declaration   (declaration,  ),  C           :            ,          ,      。                  ,              ,                     。
  _stdcall  StandardCall   , C++       :            ,          ,        this  。                     ,       retnX,X          ,CPU ret      X        。      。                 ,                 ,   ,   ,        。
  PASCAL  Pascal         ,    C/C++   ,            。         _stdcall  。
  _fastcall             。              ,          。  _fastcall        (    )        ,            。                  。     _stdcall  。
  _thiscall            this        。_thiscall   this          ,          。VC  ecx,Borland C++     eax。     _stdcall  。
  _fastcall   _thiscall            ,             。  Windows  COM        _stdcall    。
  C          _cdecl  (C         ),C++   ,            IDE     。
                  _cdecl  ,       :
  int printf(char * fmtStr, ...);
  int scanf(char * fmtStr, ...);
  */         
    
         

  __cdecl __fastcall  __stdcall,        (Calling convention),       :1)         ,2)                ,3)            。
  1、__stdcall    :              ,                    ,
  2、_cdecl C C++         。                   ,                _stdcall    。             。  :           ,    __cdecl     。
  3、__fastcall    :             (   ,  ECX EDX       (DWORD)      ,               ,                    )。
  4、thiscall     "C++"    。this     CX   ,       。thiscall     ,          。
  5、nakedcall  1-4      ,      ,                ESI,EDI,EBX,EBP   ,                    。naked call        。naked call       ,    _declspec    。
    
      

  1、   (Decoration name):"C"  "C++"     (     )       
  2、C            :
  __stdcall                    ,      "@"          ,   _functionname@number,   :function(int a, int b),     :_function@8
  __cdecl                     ,   _functionname。
  __fastcall               "@"  ,      "@"          ,   @functionname@number。
    
    

  1           __cdecl      
  2  MS-VC++6.0 ,             :Setting...\C/C++ \Code Generation     ,     __cdecl。      。

以下から抜粋:
http://baike.baidu.com/view/1280676.htm