If I remember correctly and it has been a long time, you will get these 
messages anytime you pass an STL template expansion as an argument or return 
value across of DLL boundary. As long as the STL instance is not free'd or 
reallocated by the caller (who would have a separate instance of the RTL), 
things should be fine. I don't believe that you would ever have that scenario 
in typical use of log4cxx, but if you really wanted to try, you might be able 
find a way to do it. Since object destruction is controlled by reference 
counting, the memory reclamation should always happen in the right STL.


On Aug 22, 2011, at 8:19 AM, Simon Callan wrote:

> Hi,
>  
> I’ve just started using log4cxx 0.10, apr-1.4.5 and apr-util-1-3.12 under 
> Visual Studio 2008.
>  
> When I compile my project t in release mode, I get the following warnings:
>  
> warning C4275: non dll-interface class 'std::_Container_base_aux' used as 
> base for dll-interface class 'std::_Container_base_aux_alloc_real<_Alloc>'
> warning C4251: 'std::_Container_base_aux_alloc_real<_Alloc>::_Alaux' : class 
> 'std::allocator<_Ty>' needs to have dll-interface to be used by clients of 
> class 'std::_Container_base_aux_alloc_real<_Alloc>'
>  
> There appears to have been some effort to suppress the output of these 
> warnings (#pragma disable warning 4275 4251). Are these warning likely to be 
> symptoms of problems to come using log4cxx, or can I ignore them with no 
> issues?
>  
> Simopn
>  
> Infoshare Ltd
> Millennium House
> 21 Eden Street
> Kingston upon Thames
> Surrey
> KT1 1BL
> United Kingdom

Reply via email to