Solved: the BallReturned event needed to be exported. Otherwise its type
info was being defined twice, once by the exe, once by the dll.
Thanks,
Bill
On Thu, Apr 30, 2009 at 11:41 AM, Bill Clark
Hi Andreas,
Here is a zip of the project. It can go in the 'example' folder, parallel to PingPong. I changed the references to msvc-9.0 to reference msvc-8.0, since that's what I'm using.
#defining BOOST_STATECHART_USE_NATIVE_RTTI does make everything work, so I'm looking into what this affects, but so far the explanation is not jumping out at me.
Thanks for your help, Bill
On Thu, Apr 30, 2009 at 12:42 AM, Andreas Huber < ahd6974-spamboostorgtrap@yahoo.com> wrote:
Hi Bill
I have modified the Pingpong sample (an asynchronous statechart) so that
the statechart itself is in a dll, with the calling code (in PingPong.cpp) in an exe. This is using VS2005 sp1. I have used a macro in the usual way to mark the Player class as exported.
Ok.
The app builds and runs, but it seems that events don't get acted on. We
hit Player's initiate_impl(), and we get to state_machine::process_event() with a BallReturned event passed in, but we never hit the handler for that event (Waiting::react(const BallReturned&)).
As a quick and easy test, could you please define BOOST_STATECHART_USE_NATIVE_RTTI in all involved translation units? If it works after doing so, then there's almost certainly a problem with export/import. Either way, may I have a look at the full source code?
Is this something that should work?
Yes, definitely.
Regards,
-- Andreas Huber
When replying by private email, please remove the words spam and trap from the address shown in the header.
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users