stdcall and __cdecl

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • vinu_gt@yahoo.com

    stdcall and __cdecl

    Hi All,

    I had a question about stdcall and cdecl calling convention related to
    Visual Studio 6.0

    I have a console project and in Project->setting->C++->Code Generation
    The "calling convention" is __cdecl.
    1) Does this mean that function calls(meaning i call a function in my
    program or a function in a dll)
    in my program will assume that the called functions have been compiled
    with __cdecl calling standard and as
    such use __cdecl convention to call those functions.
    Or
    2) Does it mean that "by default" the functions in my program will be
    constructed with __cdecl calling convention.

    Does it work the same way on both windows and unix.

    Could you also kindly direct me to some nice article which explains
    this in detail.

    Thanks
    Vinu

  • John Carson

    #2
    Re: stdcall and __cdecl

    <vinu_gt@yahoo. com> wrote in message
    news:1120488687 .922465.68610@z 14g2000cwz.goog legroups.com[color=blue]
    > Hi All,
    >
    > I had a question about stdcall and cdecl calling convention related to
    > Visual Studio 6.0[/color]

    Any questions that look like they may be Microsoft specific (like this one)
    are better asked in

    microsoft.publi c.vc.language
    [color=blue]
    > I have a console project and in Project->setting->C++->Code Generation
    > The "calling convention" is __cdecl.
    > 1) Does this mean that function calls(meaning i call a function in my
    > program or a function in a dll)
    > in my program will assume that the called functions have been compiled
    > with __cdecl calling standard and as
    > such use __cdecl convention to call those functions.
    > Or
    > 2) Does it mean that "by default" the functions in my program will be
    > constructed with __cdecl calling convention.[/color]

    It means that any function will be assumed to use the __cdecl convention
    unless the function prototype indicates otherwise. Function declarations in
    windows file header almost always *will* indicate otherwise, usually via
    macros like CALLBACK or WINAPI.
    [color=blue]
    > Does it work the same way on both windows and unix.[/color]

    Don't know.
    [color=blue]
    > Could you also kindly direct me to some nice article which explains
    > this in detail.[/color]

    Type in stdcall or cdecl in your compiler help file and you should get some
    hits. Or do likewise at




    --
    John Carson

    Comment

    • Larry I Smith

      #3
      Re: stdcall and __cdecl

      vinu_gt@yahoo.c om wrote:[color=blue]
      > Hi All,
      >
      > I had a question about stdcall and cdecl calling convention related to
      > Visual Studio 6.0
      >
      > I have a console project and in Project->setting->C++->Code Generation
      > The "calling convention" is __cdecl.
      > 1) Does this mean that function calls(meaning i call a function in my
      > program or a function in a dll)
      > in my program will assume that the called functions have been compiled
      > with __cdecl calling standard and as
      > such use __cdecl convention to call those functions.
      > Or
      > 2) Does it mean that "by default" the functions in my program will be
      > constructed with __cdecl calling convention.
      >
      > Does it work the same way on both windows and unix.
      >
      > Could you also kindly direct me to some nice article which explains
      > this in detail.
      >
      > Thanks
      > Vinu
      >[/color]



      Note the differences under the "Stack cleanup" column.

      Click the links (__cdecl, __stdcall, etc) for details of each.

      Larry

      Comment

      • Larry I Smith

        #4
        Re: stdcall and __cdecl

        Larry I Smith wrote:[color=blue]
        > vinu_gt@yahoo.c om wrote:[color=green]
        >>Hi All,
        >>
        >>I had a question about stdcall and cdecl calling convention related to
        >>Visual Studio 6.0
        >>
        >>I have a console project and in Project->setting->C++->Code Generation
        >>The "calling convention" is __cdecl.
        >>1) Does this mean that function calls(meaning i call a function in my
        >>program or a function in a dll)
        >>in my program will assume that the called functions have been compiled
        >>with __cdecl calling standard and as
        >>such use __cdecl convention to call those functions.
        >>Or
        >>2) Does it mean that "by default" the functions in my program will be
        >>constructed with __cdecl calling convention.
        >>
        >>Does it work the same way on both windows and unix.
        >>
        >>Could you also kindly direct me to some nice article which explains
        >>this in detail.
        >>
        >>Thanks
        >>Vinu
        >>[/color]
        >
        > http://msdn.microsoft.com/library/de...onventions.asp
        >
        > Note the differences under the "Stack cleanup" column.
        >
        > Click the links (__cdecl, __stdcall, etc) for details of each.
        >
        > Larry[/color]

        Here's two more articles that summarize it well:




        Larry

        Comment

        Working...