Home > Programming > A Comprehensive comparison of the MFC & ATL changes in VS 2017 RC compared to Visual Studio 2015 Update 3 (Part Two)

A Comprehensive comparison of the MFC & ATL changes in VS 2017 RC compared to Visual Studio 2015 Update 3 (Part Two)

January 10, 2017

This is the second part of a two-part blog post which compares MFC and ATL in VS 2017 RC with those in Visual Studio 2015. The first part of this blog post covered the changes in the header files. This follow-up blog post will cover the differences in the source code modules.

Please note that this review is based on the VS 2017 Release Candidate (Build 26014.00) which was released on December 15 2016.

As ATL is mostly a header only library you would expect almost all of the differences to be in the MFC “.cpp” source code files.

Ok, the changes are as follows:

src\atls\x64

  • This folder has been renamed from “amd64”.

src\mfc\x64

  • This folder has been renamed from “amd64”.

afxdatarecovery.cpp

afxeditbrowsectrl.cpp

  • Line 379: Fix for passing a parameter to CString::Format as an object instead of a C style string.

afxjumplist.cpp

  • Line 477, 486, 498: Fix for passing a parameter to TRACE1 as an object instead of a C style string.

afxlinkctrl.cpp

  • Line 114: Fix for passing a parameter to TRACE as an object instead of a C style string.

afxmousemanager.cpp

  • Line 121, 127: Fix for passing a parameter to TRACE as an object instead of a C style string.

afxribbonbar.cpp

afxribboncustomizedialog.cpp

  • Line 207: Fix for passing a parameter to CString::Format as an object instead of a C style string.

afxshowallbutton.cpp

  • Line 133: Fix for passing a parameter to CString::Format as an object instead of a C style string.

afxstatusbar.cpp

afxtagmanager.cpp

  • Line 196: Fix for passing a parameter to TRACE as an object instead of a C style string.

afxtoolbar.cpp

afxtoolbarslistpropertypage.cpp

  • Line 386, 452: Fix for passing a parameter to CString::Format as an object instead of a C style string.

afxtoolbarsmenupropertypage.cpp

  • Line 475, 523: Fix for passing a parameter to CString::Format as an object instead of a C style string.

afxusertool.cpp

  • Line 68: Fix for passing a parameter to TRACE as an object instead of a C style string.

afxvisualmanageroffice2007.cpp

  • Line 365: Fix for passing a parameter to TRACE as an object instead of a C style string.

afxvisualmanagerwindows7.cpp

  • Line 129: Fix for passing a parameter to TRACE as an object instead of a C style string.

ctlreg.cpp

  • Line 148: Fix for passing a parameter to TRACE as an object instead of a C style string.

dbcore.cpp

  • Line 67, 174, 180, 183: Fix for passing a parameter to TRACE as an object instead of a C style string.

oledlgs1.cpp

  • Line 692: Fix for passing a parameter to CString::Format as an object instead of a C style string.

oledoccl.cpp

  • Line 330: Fix for passing a parameter to CString::Format as an object instead of a C style string.

olemisc.cpp

  • Line 990-991: Fix for passing two parameters to _snwprintf_s as an object instead of a OLECHAR* string.

olereg.cpp

  • Line 555, 589: Fix for passing a parameter to TRACE as an object instead of a C style string.

oleunk.cpp

  • Line 202, 235, 257, 286, 309, 394, 396: Fix for passing a parameter to TRACE as an object instead of a C style string.

winctrl3.cpp

  • Line 65-77: Logic in _AFX_CHECKLIST_STATE::GetCheckBoxSize has been reworked to check the version number of comctrl32 in addition to the existing call to IsAppThemed. I was unable to find any information about this bug fix.

So, as you can see very fix bug fixes and some C++ conformance fixes in the MFC source code.

Hopefully this review was useful for those developers thinking of migrating their large ATL / MFC code base to the latest version of Visual Studio. Happy coding.

Advertisements
Categories: Programming
%d bloggers like this: