First of all, my modeler project hosted at codeplex is compiled with Visual C++ 2012 and vc10 compiler toolset. Why the vc10 compiler ? I use Boost serialization library and sourceforge gives me a static lib called libboost_serialization-vc100-mt-gd-1_51.lib built using vc10. Switching to Visual Studio 2013, I decided to build every thing with Visual C++ 2013, even boost.
First step : building Boost
My project use Boost 1.51 and there are some issue with Boost latest version 1.55 with the serialization library and vc12 (Visual C++ 2013) so I stay with Boost 1.51. There are two commands to launch. The first is bootstrap.bat and the second one is:
> bjam toolset=msvc-12.0 variant=debug,release threading=multi link=shared
The result is in the boost \ stage \ lib folder.
Second step: updating MFC setup
Download the MFC120.dll regular dll from http://www.microsoft.com/en-us/download/details.aspx?id=40770. If your project is built with Unicode character set, it will go OK but if you use not set or multibyte, you can’t compile…
Third step: modify Boost includes to handle a proper link to vc12
Modify the boost_1_51_0\boost\config\auto_link.hpp to handle vc12 (Visual C++ 2013). Add this line 158.
#elif defined(BOOST_MSVC) && (BOOST_MSVC == 1800)
// vc12:
# define BOOST_LIB_TOOLSET “vc120”
Fourth step: modify my project to use Boost as Dynamic Library for Serialization library
In the stdafx.h, I just add the following defines before including Boost headers:
#define BOOST_SERIALIZATION_DYN_LINK TRUE
#define BOOST_ALL_DYN_LINK TRUE