gpt4 book ai didi

c++ - 调用 WriteConsole 时包含 stdio 导致错误

转载 作者:太空狗 更新时间:2023-10-29 20:05:51 25 4
gpt4 key购买 nike

#include <stdio.h>
#include <windows.h>

using namespace std;

int main() {
char s[] = "Hello\n";
HANDLE stdout = GetStdHandle(STD_OUTPUT_HANDLE);
unsigned long cChars;
WriteConsole(stdout, s, lstrlen(s), &cChars, NULL);
}

结果:错误:将“_iob”声明为引用数组

但是当我注释掉 stdio.h 时,它编译正常。这里有什么问题吗?

编译器是 MinGW。

最佳答案

根据平台的不同,stdout 可能是一个宏,所以最好不要使用那个名称。替换

HANDLE stdout = ...

HANDLE out = ...

然后

WriteConsole(out, ...

stdout 是在 stdio.h 中定义的,这就是为什么它仅在包含此文件时才会失败。但为了安全起见,切勿将该名称用于任何自定义变量。

关于c++ - 调用 WriteConsole 时包含 stdio 导致错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10968074/

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