From: Ulrich Eckhardt (doomster_at_[hidden])
Date: 2007-01-27 05:30:46
On Wednesday 24 January 2007 16:30, Anthony Williams wrote:
> I've just started on a project which is Windows CE based, using Microsoft
> Embedded Visual C++ V3 and V4, and I'm having trouble using boost. There
> are several #defines in the code that cover Windows CE (e.g.
> BOOST_NO_ANSI_APIS), so somebody must be using boost successfully.
> So, my first question is: what compiler(s) are people using for Windows CE?
I'm using those that come with eVC4 and VC8 (VS2005). eVC4 comes with versions
12.00 to 12.02. Note: version 12.00 is bug-to-bug compatible with the one
from VC6, the other two don't differ much either. All of them are
cross-compilers (except the one for the emulator) so some additional
backend-problems apply with ARM and MIPS (see e.g. STLport's documentation,
which has official CE support). VC8 comes with compilers versions 14.x, which
are already pretty good and should be able compile all of Boost (though not
necessarily do so due to platform and library restrictions).
> Secondly, though these compilers are pretty similar to MSVC6 in terms of
> direct C++ language support, they are further hampered by the lack of
> exceptions and RTTI for the Windows CE targets needed for my project, and
> by the lack of a decent Standard Library.
Okay, the stdlib can be overcome with STLport5, as you have noticed yourself.
Now, concerning RTTI (which again is a requirement for exceptions), you
should be able to use it. Some platforms don't include support for it (see
again the STLport docs) but it can be retrofitted using patches from MS. For
other platforms, you will need access to "Platform Builder", which is
basically a tool to assemble a CE platform from the various modules. If you
have to use an existing platform, you might be able to persuade the supplier
to add RTTI support to it, otherwise I'm afraid you're out of luck - at least
I wouldn't be aware of a way to simply retrofit it to an existing platform.
Concerning the question which libs we use, there are
- smart pointers
I know that lexical_cast has problems with std::wstring under VC6 and eVC4
though, so that one is restricted. Also, we are using a patched 1.33.1
version, and I'm not sure which patches have been accepted yet. The major
breakage (#if _MSC_VER==1200, which fails for 1201 and 1202) seems to have
been fixed already, for all others I'd be willing to help out, too, if the
patches got lost.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk