You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows C++控制台字体修改报错:CONSOLE_FONT_INFOEX未声明

解决C++控制台程序中'CONSOLE_FONT_INFOEX'未声明的问题

出现这个错误的核心原因是CONSOLE_FONT_INFOEX和SetCurrentConsoleFontEx是Windows Vista及更高版本才引入的API,默认情况下Windows SDK可能未启用对应版本的API声明。解决方法如下:

  • 在代码最开头添加版本宏定义,指定启用Vista及以上的API支持,比如#define _WIN32_WINNT 0x0600,也可以用更高版本值(如0x0A00对应Windows 10)

修改后的完整代码:

#define _WIN32_WINNT 0x0600
#include <windows.h>
#include <iostream>
using namespace std;

int main() {
    CONSOLE_FONT_INFOEX font;
    font.cbSize = sizeof(font);
    font.nFont = 0;
    font.dwFontSize.X = 8;
    font.dwFontSize.Y = 8;
    SetCurrentConsoleFontEx(GetStdHandle(STD_OUTPUT_HANDLE), FALSE, &font);
    cout << "Hello world";
    return 0;
}

补充说明:

  • 若使用Visual Studio编译,也可通过项目配置添加宏:右键项目→属性→C/C++→预处理器→预处理器定义,添加_WIN32_WINNT=0x0600
  • 需确保使用的Windows SDK版本包含该API定义,较新版本的SDK均支持

内容的提问来源于stack exchange,提问作者Ben Leib

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 02:22:04