gpt4 book ai didi

c - winapi FillConsoleOutputAttribute 程序崩溃

转载 作者:太空宇宙 更新时间:2023-11-04 04:36:35 26 4
gpt4 key购买 nike

具有这些功能

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);
}

当我尝试在 screenSize() 之后调用 setPixel() 时收到错误消息:

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
}

上面的程序崩溃了。我无法在 FillConsoleOutputAttribute() 之后调用 GetLastError(),这似乎会导致错误并立即使程序崩溃。我在 the reference 中没有找到任何内容.

什么可能导致程序崩溃,如何解决?

最佳答案

您的setPixel 函数应该是这样的:

void setPixel(SHORT x, SHORT y, WORD color) {
COORD pos = {x, y};
DWORD out;
FillConsoleOutputAttribute(console,color,1,pos, &out);
}

在您的版本中,您将一个未初始化的指针(即 out)传递给 FillConsoleOutputAttribute

关于c - winapi FillConsoleOutputAttribute 程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30078786/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com