Modifications required in order to build MAF2 with Visual Studio 2013, specifically:

1) CMakeLists.txt of example applications modified to include VS 2013 into list of CMAKE_GENERATORs requiring NO_MANIFEST, and some modified to copy app.ico into the correct directory

2) Main CMakeList.txt modified to enable parallel compilation (supported by VS 2012+)

3) CRYPTO version 5.6.2 is now used for Windows, removed obsolete, not used CRYPTO packages; the only difference in comparison with the previous version used should be some added conditional compilation (e.g., in zdeflate.cpp) to support VS 2012+

4) At several places (including VTK) non standard insertion operator ostream& operator << (ostream&) was used. For example: cout << ost; //ost is instance of ostream (or ofstream). Prior to VS 2013, the compiler implicitly casted the ostream instance on the right side of expression (ost) to void*, which outputted the pointer address - probably something that was not intended. Actually, thinking about it, this insertion operator makes no sense at all since as streams are by the default data storages without random access, the operator would need to read the data from the current position of the passed stream (ost) until the end and write them into the output stream (left side of the expression). However, as the passed stream (ost) is ostream, i.e., an output stream, its current position is typically at the end, so nothing  may be written into the output stream on the left side of the expression.

Changes: in VTK the use was removed (the code line not there in VTK 6.0 anyway); mafVMEMeshAnsysTextExporter was updated accordingly to output the message both into a file and on a console (cout).

5) At several places, non-standard construction to check if opening file/reading from a file via STL has succeeded was used, e.g., if ( this->IFile->read(result, 80) == 0). This was replaced to use standard way by calling the method fail(), .e.g., if ( this->IFile->read(result, 80).fail())

6) ITK contained a bug in the definition of a template class. Prior to VS 2013, the code in the definition of a template class was not inspected by the compiler until the code was used (with concrete specification of types), so the bug was never revealed. The bug was: definition of non-static operator == with two arguments in the template class (and there was no implementation of this operator). The bug was removed by removing (conditionally) the definition of the operator.