From: Felipe Magno de Almeida (felipe.m.almeida_at_[hidden])
Date: 2008-03-31 02:28:49
On Sun, Mar 30, 2008 at 5:44 PM, Robert Ramey <ramey_at_[hidden]> wrote:
> Felipe Magno de Almeida wrote:
> > On Sun, Mar 30, 2008 at 1:59 PM, Robert Ramey <ramey_at_[hidden]> wrote:
> > A translation file is a preprocessed .cpp file. A DLL can have lots of
> > source files.
> >> Is the DLL loaded explicitly with "library load"
> > Yes.
> >>> LoadLibrary through boost.extension.
> you should be able to see (with your debugger) the create of one
> and only one entry in the kt table when the library is loaded.
Ok. I was able to make a reproducible case. Though not *exactly* what I see
in my project. It is attached.
I hadn't noticed before, but in my project I had two
BOOST_CLASS_EXPORT in the DLL project.
That did registered the same extended_type_info<> instance to the ktmap.
When one was to be destroyed, it sets m_key to zero.
In the example I'm sending, the executable breaks in a more mysterious way.
Is more than one BOOST_CLASS_EXPORT, in different translation files,
suppose to work?
Removing the extra one, or not including the archives and export.hpp
also worked in this project.
It did int-defaulted the return type to the BOOST_CLASS_EXPORT(x);
when it was not defined,
that's why I it slip through me.
> should see the deletion of this one entry when the the library is
> unloaded. I would make a simple program that just loads
> and unloads the DLL and verify this behavior.
> This is a spanking new facility so its possible that
> it has some bugs. Also, I have to test this "by hand" so
> its not tested as part of the test system.
Yeah, that's very hard to test with boost.test facilities.
> Robert Ramey
-- Felipe Magno de Almeida
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk