stdcall functions?

Anders Bergh anders at andersman.org
Mon Apr 23 14:02:24 PDT 2007


On 4/23/07, Thomas Kühne <thomas-dloop at kuehne.cn> wrote:
> Chris Miller wrote:
> > On Mon, 23 Apr 2007 06:15:36 -0400, Walter Bright
> > <newshound1 at digitalmars.com> wrote:
> >
> >> Chris Miller wrote:
> >>> On Mon, 23 Apr 2007 03:32:31 -0400, Walter Bright
> >>> <newshound1 at digitalmars.com> wrote:
> >>>
> >>>> Chris Miller wrote:
> >>>>> How can I make a stdcall function on Linux with DMD?
> >>>>> extern(Windows) works, but it gives it DMC's Windows name mangling
> >>>>> (e.g. foo at 4) that is not compatible with Linux' stdcall C functions.
> >>>>
> >>>> I didn't know Linux even had stdcall C functions.
> >>>   GCC has __attribute__((__stdcall__))
> >>>  Specifically, I want to work with winelib, which is a Windows API
> >>> implementation for Linux (and others); and like Windows, uses stdcall.
> >>
> >> If Linux's stdcall functions are for compatibility with Windows, why
> >> aren't they compatible with Windows name mangling?
> >
> > I don't think that's its one and only purpose. Just what I want it for
> > now. Besides, I don't think all Windows compilers mangle stdcall that
> > way, and linux ones don't.
>
> The attached program might help:
> 1) use extern(Windows) in your sources
> 2) compile
> 3) dmd_wine_fixer <your_object_file>
> 4) link
>
> Thomas
>
>


-- 
Anders




More information about the Digitalmars-d mailing list