|
Happy New Year all
The dynamic link from ObjectHandler to log4cxx has caused some
problems so in CVS I put this back to a static link. See below for
more detail.
Regards,
Eric
log4cxx link
=========
The last release of ObjectHandler introduced a dynamic link to
log4cxx, intended to make things more convenient - a user could
install log4cxx.dll once and forget about it, possibly across multiple
ObjectHandler releases. But it turns out there's a design flaw in
log4cxx whereby a smart pointer allocated in the client goes out of
scope in the DLL. In other words an address allocated by "new" in
ObjectHandler is passed to "delete" in log4cxx.dll. This crashes the
app unless log4cxx.dll and its client(s) share the same stack - they
must be compiled against the same runtime library, which must be a DLL
runtime library.
So any time you rebuild ObjectHandler etc. with a different
configuration you have to rebuild and reinstall log4cxx.dll. This
cancels out much of the convenience that would normally be gained by
using a dll so we've gone back to a static link.
I updated VC6 and VC8, the VC7 workspaces are out of date for the moment.
|