Hi Mark,
Yes, these Boost files and their settings are needed by the MongoDB client components.
If you set these up using the GUI in Visual Studio, be sure to check the Properties for the source files to make sure that you copy the handful of special cases for some files. In MongoDB itself, we use both ..\..\third_party\boost\libs\program_options\src\utf8_codecvt_facet.cpp and ..\..\third_party\boost\libs\filesystem\v3\src\utf8_codecvt_facet.cpp, so we have to change the output filename on one of them to prevent filename collisions on the .obj files. We set the output filename for ..\..\third_party\boost\libs\filesystem\v3\src\utf8_codecvt_facet.cpp to $(IntDir)filesystem_utf8_codecvt_facet.obj to do this. simple_client_demo does not use Boost::program_options so it doesn't need this, but we did it anyway for consistency. simple_client_demo does use the thread files thread.cpp, tss_dll.cpp and tss_pe.cpp and we add an additional preprocessor symbol BOOST_THREAD_BUILD_LIB for those three files.
Two alternatives to copying all of this stuff by hand in the GUI are:
1) Start with a copy of simple_client_demo.vcxproj and simple_client_demo.vcxproj.filters and change them to turn the copy into your project;
2) Copy text directly from simple_client_demo.vcxproj and
simple_client_demo.vcxproj.filters into your project and filters files. The vcxproj files are XML files that aren't too hard to figure out and you might find it faster to use a text editor to copy and paste what you need rather than do a lot of mouse clicking to do it in the GUI.
The filter part is just for convenience and organization; it's not actually required, but it makes it easier to separate the different bits in the GUI. You can do a combination of GUI changes and text editor changes to get the vcxproj file(s) into the form you need; you just need to be careful in the text editor to keep the XML well-formed.
Tad