Hi again,

The problem is probably something else. I'll check it out.

I'm well on my way on a new build, which seems to be going well. I just changed the Atomic header to set the defines which are commonly set to avoid windows.h polluting the namespace with lots of junk, i.e.:

#if defined(_OPENTHREADS_ATOMIC_USE_WIN32_INTERLOCKED)
# ifndef _WIN32_WINNT
#  define _WIN32_WINNT 0x0400
# endif
# ifndef WIN32_LEAN_AND_MEAN
#  define WIN32_LEAN_AND_MEAN
# endif
# ifndef NOMINMAX
#  define NOMINMAX
# endif
# include <windows.h>
// ...

And it seems to be going well.

These are things which need to be defined the first time windows.h is included (which was somewhere else before, but now it's in OT/include/Atomic), otherwise the right things don't get included (or the wrong things get included). windows.h is a monolithic header, and it has lots of confusing options as to what gets included in which conditions...

To prevent such things from happening again (or at least make it harder), perhaps we could make a header called "Win32" or something in OpenThreads, which would be included whenever windows.h is needed in both OSG and OT, and which would define the right options. That way we wouldn't have windows.h included in lots of places and with different options each time... For reference, there are currently about 22 places in the OSG sources where windows.h is included - some in core projects, some in examples, some in plugins...

Anyways, I'll chime in when the build finishes.

J-S
--
______________________________________________________
Jean-Sebastien Guay    [EMAIL PROTECTED]
                               http://www.cm-labs.com/
                        http://whitestar02.webhop.org/
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to