Имея эти функцииWinAPI крах программы FillConsoleOutputAttribute
void setPixel(SHORT x, SHORT y, WORD color) {
COORD pos = {x, y};
LPDWORD out;
FillConsoleOutputAttribute(console,color,1,pos,out);
}
void setScreenSize(SHORT x, SHORT y) {
COORD size = {x, y};
SetConsoleScreenBufferSize(console,size);
}
Я получаю сообщение об ошибке при попытке вызова setPixel()
после screenSize()
:
int main() {
HANDLE console = GetStdHandle(STD_OUTPUT_HANDLE);
setScreenSize(120,40); // works well if setPixel is not called after
setPixel(40,12,GREEN); // works well if setScreenSize is not called
}
Программы выше аварий. Я не могу позвонить GetLastError()
после FillConsoleOutputAttribute()
, который, как представляется, вызывает ошибку и сразу же запускает программу. Я ничего не нашел в the reference.
Что может вызвать сбой программы и как ее решить?
Включите предупреждения компилятора. Особенно предупреждение «использование неинициализированной переменной». –
А, я получаю вашу мысль! «Out» является унифицированным: я использовал «DWORD out» и предоставил его адрес последнему параметру, и он отлично работает. Благодарю. Может быть, ответ. –