This is the mail archive of the
cygwin@sourceware.cygnus.com
mailing list for the Cygwin project.
Re: Dlls @n symbols
- To: Emanuele ALIBERTI <ealiberti@hotmail.com>
- Subject: Re: Dlls @n symbols
- From: Mumit Khan <khan@xraylith.wisc.EDU>
- Date: Wed, 23 Jun 1999 10:00:40 -0500
- cc: cygwin@sourceware.cygnus.com
Emanuele ALIBERTI <ealiberti@hotmail.com> writes:
> I had to face the same problem. But could not solve it completely yet. There
> is also a mistake in the dlltool documentation, where it is told the figure
> after @ is the function's ordinal number: it is actually the stack size the
> exported function will add to the ESP on return (that's STDCALL).
> To make a clean exports table, now I use explicit aliasing in the .DEF file:
I'll take a look at the doc. I believe the docs refer the number "1" below
as the ordinal, not the @<n> number in foo@0.
EXPORTS
foo = foo@0 @ 1 ; 1 is the ordinal number.
> ----------
> LIBRARY sample
> EXPORTS
> Bar=Bar@0
> Foo=Foo@24
It turns out that Suhaib's problem is very different than yours.
What you're telling the dll tools is that you want to link with Bar@0, but
have the DLL export Bar; similarly with Foo. One way to get both in the
export list is the following:
LIBRARY sample
EXPORTS
Bar@0
Bar=Bar@0
Foo@24
Foo=Foo@24
> ----------
> but still fail to generate an import library which makes the application
> dynamically link correctly. In the context of the previous example .DEF, I
> get errors like "Loader could not find Foo@24 in sample.dll" (in fact
> sample.dll exports now "Foo", not "Foo@24").
Now sample.dll exports both Foo and Foo@24.
dllwrap and dlltool both provide --add-stdcall-alias option just for this
so you don't have to do this manually. See my dllhelpers examples for more
info at http://www.xraylith.wisc.edu/pub/khan/gnu-win32/dllhelpers.html.
Regards,
Mumit
--
Want to unsubscribe from this list?
Send a message to cygwin-unsubscribe@sourceware.cygnus.com