
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 - optional - threads - regex - function - bind - lexical_cast 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. cheers Uli