专为Windows平台设计的控制台颜色输出解决方案,修复默认输出ANSI转义码(\33)显示问题。
Windows控制台默认不兼容ANSI转义码,导致以下问题:
- 颜色输出显示为原始转义字符(如\33[32m)
- 跨平台应用的终端输出不一致
- 需要手动启用虚拟终端支持
本方案通过自动配置控制台和编译器,提供无缝的颜色输出支持。
- 🎨 自动启用Windows虚拟终端(ENABLE_VIRTUAL_TERMINAL_PROCESSING)
- 🔧 简化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;
}
# 自动配置控制台虚拟终端支持
target_link_libraries(your_target PRIVATE dmfix_win_console)
- 纯C环境确保调用dm_win_console_init()初始化
- 支持标准ANSI转义码格式
欢迎通过Issue和PR参与贡献!请遵循:
- 提交前运行测试用例
- 保持代码风格统一
- 更新相关文档
build.bat
本项目采用 MIT许可证,欢迎自由使用和修改。
维护者:@brinkqiang
项目地址:https://github.com/brinkqiang/dmfix_win_console