On May 6, 9:10 pm, Gianni Mariani <gi4nos...@[EMAIL PROTECTED]
> wrote:
> osama...@[EMAIL PROTECTED]
wrote:
> > further reading are greatly appreciated.
> >> It sounds like you're a little confused.
> >> Binary compatablity usually is associated with a context.
> >> If you build with different versions of the STL or with
> >> various options that render binary incompatibility, then
> >> this is your choice.
> >> Please elaborate what you're really concerned about.
> > Sorry my question was not very clear. In other words, can
> > STL Objects cross DLL boundaries. For example. Can we pass
> > STL objects between different binaries by reference safely?
> Only if you're using the same STL library (or binary
> compatible library). This usually means you're stuck with
> making sure that the DLL versions are using the same compiler
> major revision.
And the same compiler options. At least some of them can also
affect the binary compatibility. Using g++, try linking code
compiled with -D_GLIBCXX_DEBUG, and code compiled without it.
(Actually, it links just fine---it just crashes at runtime.)
And while I've not actually tried it, I would expect similar
problems with VC++ using mixtures of /Gd, /Gr and /Gz or
different values of /vm<x> or /Zc:wchar_t. (In practice,
without /vmg, you'll get binary incompatibility anyway.)
Note too (to the original poster) that whether you're using
dynamic linking or not is really irrelevant. If the object or
library files are not binary compatible, you can't statically
link them either (or the results of the static link will crash).
--
James Kanze (GABI Software) email:james.kanze@[EMAIL PROTECTED]
en informatique orient=E9e objet/
Beratung in objektorientierter Datenverarbeitung
9 place S=E9mard, 78210 St.-Cyr-l'=C9cole, France, +33 (0)1 30 23 00 34


|