The behaviour of Tokenize has changed between MFC 7 and MFC 8 and has broken some of our existing code. The change has to do with passing in an empty ("") delimiter string. In MFC 7 Tokenize would return the original string AND adjust iStart so it was possible to use it in a while loop like so:
CString strDelimiters = "";
int iStart = 0;
With MFC 8 iStart is never adjusted so subsequent calls to Tokenize always returns the original string rather than returning an empty string like under MFC 7.
CString strCurrentValue =
while (strCurrentValue != "")
//DO SOME STUFF HERE
strCurrentValue = strText.Tokenize(strDelimiters,
If any of the MFC team is listening I am wondering why you decided not adjust iStart and instead made passing an empty string the equivalent to passing NULL.