Код до подготовки к переносу
Код до подготовки к переносу
Большая часть программного кода sortMM.с не приводит к выдаче предупреждающих сообщений, но один участок кода на шаге 6 (см. программу 5.5) вызывает их генерацию. Соответствующий фрагмент кода вместе с номерами строк представлен в программе 16.1. Имейте в виду, что в последующих версиях этой программы номера строк могут поменяться.
Программа 16.1. sortMM.с: код до подготовки к переносув Win64, часть 1
…
54 LPBYTE pXFile = NULL, pX;
55 TCHAR _based (pInFile) *pIn;
…
130
131 if (!NoPrint)
132 for (iKey = 0; iKey < FsX / RSize; iKey++) {
133 WriteFile(hStdOut, &ChNewLine, TSIZE, &nWrite, NULL);
134
135 /* Приведение типа рХ играет весьма важную роль, поскольку это
136 указатель на байт, а нам нужны четыре байта указателя типа _based. */
137 pIn = (TCHAR _based(pInFile)*)*(LPDWORD)pX;
138
139 while ((*pIn != CR || *(pIn + 1) != LF) && (DWORD)pIn < FsIn) {
140 WriteFile(hStdOut, pIn, TSIZE, &nWrite, NULL);
141 pIn++;
142 }
143 pX += RSize;
144 }
Сообщения компилятора далее приводятся, но прежде чем ознакомиться с ними, вы, возможно, захотите просмотреть код, чтобы определить возможные причины выдачи будущих предупреждающих сообщений. Не забывайте о том, что нашей целью является придание программе такого вида, который обеспечивает ее сборку и корректное выполнение как в режиме Win32, так и в режиме Win64.