Winelib Program with DLL problem
Kevin Atkinson
kevina at gnu.org
Thu Dec 25 22:16:49 CST 2003
On Fri, 26 Dec 2003, Dmitry Timoshkov wrote:
> "Kevin Atkinson" <kevina at gnu.org> wrote:
>
> > That is a heck of a lot of work to link with a DLL that is not compiled
> > with an exports table.
>
> I don't understand you. If a DLL exports something (i.e. has a not zero
> export directory in the PE header), then it definitely has an export table.
Sorry. I mean what it is compiled with a .def file rather than using
__declspec(dllexport).
>
> > Furthermore, when I use an exports table (ie compile with /def in VC++)
> > mingw has problems linking with the DLL. It could be that I need to pass
> > in special options. Simply including the ".lib" file as a link object is
> > not enough.
>
> MinGW (or rather Windows ld port) has its own heuristics for resolving
> symbols in external libraries. So, just stick to rules and read its
> documentation. I have an old dllhelpers-0.2.6.tar.gz addon for MinGW with
> samples how to use DLLs with MinGW, you could find something similar
> on the net.
>
> I'd say that the key of your problems is a bug in MS linker which exports
> decorated API names. That's similar to an attempt to link against a DLL
> with C++ style decorated exports created by a compiler from another vendor.
If the names are not decorated in that fashion mingw has a problem linking
with it. When linked the linker is looking for the names with the
'@' decoration.
I would hardly call the '@' decoration a bug, it is the way it is done in
windows. It is spelled out in the documentation that way.
> > It seams rather strange that wine has so much problems linking with a DLL
> > not compiled with an exports table. Am I the first one who attempted
> > this.
>
> Probably. Don't forget: Wine is alpha software. Every your contribution
> makes it better, as it has become much better with the help of many other
> people.
Yeah, yeah. I don't know the least thing about windows linking or how
to fix wine to make it handle this situation better. So I guess if I
don't contribute a patch to handle this it won't get fixed anytime soon.
--
http://kevin.atkinson.dhs.org
More information about the wine-devel
mailing list