Я снова играл с C ++, когда обнаружил эту проблему.Я хочу перечислить все ошибки, когда я встретил GetLastError();
.Я обнаружил, что он дает только код ошибки, и это так, когда я встретил FormatMessage();
.Все идет гладко и пока DWORD en
не достигнет 35.
#include <iostream>
#include <sstream>
#include <windows.h>
#include <conio.h>
void psdem(DWORD en) {
LPVOID error;
FormatMessage(
FORMAT_MESSAGE_ALLOCATE_BUFFER|FORMAT_MESSAGE_FROM_SYSTEM|FORMAT_MESSAGE_IGNORE_INSERTS,
NULL,
en,
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
(LPTSTR)&error,
0,
NULL);
cout << (LPCTSTR)error;
}
int main() {
for (int i = 0 ; ((i <= 2147483647) & (i >= 0)) ; i++) {
psdem(i);
cout << endl;
}
getch();
}
Это сбивает с толку, и я застрял с этим.Я полагаю, что есть решение, чтобы исправить это, но я искал решение через Интернет, но я просто не могу найти решение.
Итак, я написал код, чтобы пропустить 35, а затем 37вызывает зависание программы.Снова, я закодировал, чтобы пропустить это, и 40 приходит на место.Затем я понял, что это не индивидуальная ошибка.
Почему это происходит и как я могу это исправить?