|
Boost : |
From: Martin Schuerch (mschuerch_at_[hidden])
Date: 2002-12-19 18:04:23
"Peter Dimov" <pdimov_at_[hidden]> wrote in message
news:002901c2a789$02a54960$1d00a8c0_at_pdimov2...
> From: "Martin Schuerch" <mschuerch_at_[hidden]>
> > Hi
> >
> > I already posted once the following problem (solution). The problem is
> still
> > there in the code of the boost repository. I doesn't know if there are
> > reasons to not apply the patch, (e.g. global namespace polution) or if
the
> > post was missed.
> >
> > Problem:
> > In my project (some files are compiled with the /CLR flag) I get the
> > following link error under VC7.
> >
> > pplib.lib(PPFacadeNet.obj) : error LNK2022: metadata operation failed
> > (80131195) : Custom attributes are not consistent: (0x0c0008f2).
> > LINK : fatal error LNK1254: metadata for symbol
> > '?InterlockedExchange_at_winapi@detail_at_boost@@$$J18YGJPCJJ_at_Z' inconsistent
> with
> > COFF symbol table
> >
> > The problem is (after a long search), that the forward declarations of
> e.g.
> > InterlockedExchange (win32) are inside a namespace. When they are global
> it
> > works.
>
> [...]
>
> > extern "C" __declspec(dllimport) boost::detail::winapi::long_type
> __stdcall
> > InterlockedIncrement(boost::detail::winapi::long_type volatile *);
> > extern "C" __declspec(dllimport) boost::detail::winapi::long_type
> __stdcall
> > InterlockedDecrement(boost::detail::winapi::long_type volatile *);
> > extern "C" __declspec(dllimport) boost::detail::winapi::long_type
> __stdcall
> > InterlockedExchange(boost::detail::winapi::long_type volatile *,
> > boost::detail::winapi::long_type);
>
> But won't these collide with the declarations in <windows.h>?
No. I tried by including the widely used shared_ptr.hpp and windows.h (non
64 bit branch).
Why should it, as long as the types exactly match the once in windows.h?
Martin
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk