Mail Archives: cygwin-apps/2001/08/04/00:17:18
>
> >>I still don't understand the logic completely, but I cannot get
> >>iostreams to initialise properly, using DLL, with
> [io]stream::sentry
> >>defined as inner class by client app, regardless of the dllimport
> >>attribute markings.
> >>
> >
Okay, I sent this to Robert (only) earlier after he yelled at me.
Perhaps it needs to go group:
Yes this is what I know: --export-all-symbols is used when building
the dll, full stop.
It is a lazy substitue for a def file. It is used implicitly if you
don't have a def file or haven't used attributes to mark dllexport
attributes.
The same behaviour as with dlltool.
It works fines, and puts the correct prefixess on DATA symbols.
That is not what was causing the problem, because:
--export-all when building lib and using __attribute__(dllimport) when
building client then linking works.
--export-all when building lib; using --enable-auto-import when linking
works too, but... I have to change other things in the way classes are
defined
there are other considerations on when and where things get constructed
and destroyed that can cause problems with C++ dlls. And that is the
caveat. There is (sometimes) more to building a C++ dll than just
getting the DATA symbols marked correctly. Ralf has run into some
others. If you go through some of the VC++ user list archives you will
find more.
All I was trying to point out that --enable-auto-import is a
quick-fix, but not always the best fix.
> > My guess is that it's the use of --export-all that is causing you
> > headaches.
>
>
> My guess is there may still be a few bugs. :-)
>
> --Chuck
>
The main bugs, as I indicated earlier, are in people's expectation of
what this feature can do.
Danny
_____________________________________________________________________________
http://messenger.yahoo.com.au - Yahoo! Messenger
- Voice chat, mail alerts, stock quotes and favourite news and lots more!
- Raw text -