On Wed, Oct 03, 2007 at 09:35:51AM +0200, Hannes Eder wrote:
> Magnus Hagander schrieb:
> >>>Since this is an actual API library, perhaps a proper fix is to create a
> >>>.def file listing the exports in it, the same way we do for libpq? And
> >>>then
> >>>we could (should!) also filter the exports the same ways as we do for
> >>>libpq
> >>>these days.
> >>>
> >>>(see the exports.txt file in libpq)
> >>>
> >>>I'll try to find time to look forther at this meanwhile, but if someone
> >>>can
> >>>confirm that donig an explicit export list is a good way to go, I can
> >>>confirm that donig that fixes the build problem :-)
> >>>
> >>>//Magnus
> >>>
> >>>---------------------------(end of broadcast)---------------------------
> >>>TIP 6: explain analyze is your friend
> >>>
> >>>
> >>According to:
> >>
> >>Module-Definition (.def) File EXPORT
> >>http://msdn2.microsoft.com/en-us/library/ms856515.aspx
> >>
> >>whitespace is required between the name and the ordinal in a
> >>.def-file, hence in the .def-file DllMain @12 should be used
> >>instead of DllMain@12.
> >>
> >
> > you're reading the problem wrong. The 12 is not the ordinal, it's a part
> > of the decorated name.
> >
> >
> >/Magnus
> >
> >
> >---------------------------(end of broadcast)---------------------------
> >TIP 2: Don't 'kill -9' the postmaster
> >
> but, we are compiling C so the names shouldn't be decorated.
We're not talking C++ decoration, we're talking Windows API decoration.
Take a look at for example:
http://www.geocities.com/yongweiwu/stdcall.htm
(there is a reference on MSDN as well, btu I can't find it right now)
The @12 is "12 bytes in the argument list to the function". The
reason is to make sure the caller calls it with the right number of
arguments so as to prevent stack issues.
//Magnus