Skip to content

brinkqiang/dmfix_win_console

Repository files navigation

dmfix_win_console - Windows控制台颜色输出解决方案

License Windows Build GitHub Stars

专为Windows平台设计的控制台颜色输出解决方案,修复默认输出ANSI转义码(\33)显示问题。

目录

背景

Windows控制台默认不兼容ANSI转义码,导致以下问题:

  • 颜色输出显示为原始转义字符(如\33[32m)
  • 跨平台应用的终端输出不一致
  • 需要手动启用虚拟终端支持

本方案通过自动配置控制台和编译器,提供无缝的颜色输出支持。

特性

  • 🎨 自动启用Windows虚拟终端(ENABLE_VIRTUAL_TERMINAL_PROCESSING)
  • 🔧 简化CMake配置流程
  • 💻 支持现代控制台应用开发
  • 📦 跨平台兼容性设计
  • ⚡ 零额外依赖

安装

通过CMake集成

include(FetchContent)
FetchContent_Declare(
    dmfix_win_console
    GIT_REPOSITORY https://github.com/brinkqiang/dmfix_win_console.git
    GIT_TAG        master
)
FetchContent_MakeAvailable(dmfix_win_console)

target_link_libraries(your_target PRIVATE dmfix_win_console)

使用指南

基本使用

#include "dmfix_win_console.h"

int main() {
    // 纯C 需要 自己初始化控制台配置 C++仅包含头文件即可
    dm_win_console_init();
    
    // 正常输出颜色代码
    std::cout << "\033[32mSuccess!\033[0m" << std::endl;
    std::cout << "\033[31mError!\033[0m" << std::endl;
    return 0;
}

CMake配置示例

# 自动配置控制台虚拟终端支持
target_link_libraries(your_target PRIVATE dmfix_win_console)

⚠️ 注意

  1. 纯C环境确保调用dm_win_console_init()初始化
  2. 支持标准ANSI转义码格式

贡献指南

欢迎通过Issue和PR参与贡献!请遵循:

  1. 提交前运行测试用例
  2. 保持代码风格统一
  3. 更新相关文档

编译

build.bat

许可证

本项目采用 MIT许可证,欢迎自由使用和修改。


维护者:@brinkqiang
项目地址:https://github.com/brinkqiang/dmfix_win_console

About

Windows控制台\033颜色输出解决方案

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages