Breaking Changes (MFC)
Breaking changes in MFC.
Breaking Changes
The plRequestNumber parameter to AfxIsMemoryBlock will now be initialized to zero if it does not represent a currently active memory block.
CString operators << and >> that were global in afxstr.h have been moved to be a member operator in CArchive. The new operators are:
template< typename BaseType, class StringTraits > CArchive& operator<<(const ATL::CStringT<BaseType, StringTraits>& str) template< typename BaseType, class StringTraits > CArchive& operator>>(ATL::CStringT<BaseType, StringTraits>& str)
This change breaks user code in the following scenarios:
-
Existing code that already specializes the global operator << , so specialization doesn't have the primary template anymore.
-
Existing code that calls ::operator <<(ar,str); (instead of using the ar << str syntax).
-
Create and CreateEx methods are no longer virtual on several MFC control classes: CStatusBarCtrl Class, CListCtrl Class, CTreeCtrl Class, CToolBarCtrl Class, CReBarCtrl Class, CRichEditCtrl Class, CEdit Class. These virtual methods were added in the previous version but broke user code, so they have been removed.