
On 05/27/2010 07:38 PM, Christoph Heindl wrote:
Hi,
forgive me if the following error description is too vague.
We are currently using boost.log (exported on 2010/05/20, compiled with msvc 9.0 sp1 on win7 against boost 1.40.0) in a large C++ project.
On top of this C++ project a C-API is placed to ease integration with .NET's pInvoke technology. This C-API consists of very primitive methods. Integration with .NET (2.0 or 3.x does not matter) works fine on win7. But when the executables are moved to a windows xp (or lower) based platform (with all redistributables installed) it breaks with an AccessViolationException.
We tracked down the problem (without the ability to debug :) to the usage of BOOST_LOG_FUNCTION and/or BOOST_LOG_NAMED_SCOPE. If those macros are not used, everything works fine again.
I know my description is vague, but maybe someone has an idea if the problem is us or the problem could rely in those macros.
Help is desperately needed.
What version of the library do you use? Is it used in a context when its binary is dynamically loaded? If so, try disabling compiler-supplied TLS by defining BOOST_LOG_NO_COMPILER_TLS. If that doesn't help, then please register a trac ticket with a stack of the crash. I'll take a look. BTW, are the BOOST_LOG_FUNCTION/BOOST_LOG_NAMED_SCOPE macros only used from pure C++ code?