FYI, we're not planning on making any changes to activemq-cpp to address the
shortcomings of other compilers.

Regarding the destroy methods for deallocating amq-cpp resources, do you
think this would be required for clients that are built with newer msvc
compilers?  Would it also be a problem for gcc or just msvc?

Thanks,
Nate


With all these bits fixed, you might still run into problems (I could
be wrong... and I hope I am). The problem is this (I think). E.g.:

Session* session = connection->createSession(...);

createSession calls code in the VS2005-compiled DLL which is
dynamically linked to some version 8 of the Microsoft runtime. This
allocates the Session object on a heap specific to that runtime
library. Now when you do:

delete session;

in code compiled by VS6, that tries to remove the object from some heap
that belongs to some version 6 of the runtime. The object isn't on that
heap, so strange things will happen.

For this to work right, I think the various CMS classes would have to
get methods like destroySession, etc. so that you can be sure that you
always new and free on the same heap when running on Windows.

Anyway, I could be wrong. Anyone else? You can at least try to just
delete the stuff. If it blows up, my theory might explain why.

Cheers,

Albert

Reply via email to