`AllocConsole` 函数 通过控制台实时看printf日志

看控制日志实时

cpp 复制代码
#ifdef _DEBUG
	AllocConsole();
	freopen("CONOUT$", "w+t", stdout); //#打开log窗口
#endif

还有另一种方法

AllocConsole 函数是一个Windows API函数,用于在当前进程中分配一个新的控制台窗口。这个函数通常用于控制台应用程序,它允许你在图形应用程序中创建一个控制台窗口,以便在该窗口中进行文本输入和输出。

以下是AllocConsole函数的用法和示例代码:

c 复制代码
#include <Windows.h>

int main() {
    // 分配控制台窗口
    AllocConsole();

    // 获取标准输入、标准输出和标准错误输出的句柄
    HANDLE hConsoleOut = GetStdHandle(STD_OUTPUT_HANDLE);
    HANDLE hConsoleIn = GetStdHandle(STD_INPUT_HANDLE);

    // 现在你可以使用这些句柄来进行控制台输入和输出
    // 例如,使用WriteConsole函数来输出文本到控制台
    const char* message = "Hello, Console!\n";
    DWORD charsWritten;
    WriteConsole(hConsoleOut, message, strlen(message), &charsWritten, NULL);

    // 使用ReadConsole函数来从控制台读取用户输入
    char inputBuffer[256];
    DWORD bytesRead;
    ReadConsole(hConsoleIn, inputBuffer, sizeof(inputBuffer), &bytesRead, NULL);

    // 关闭控制台窗口
    FreeConsole();

    return 0;
}

在这个示例中,AllocConsole函数用于创建一个控制台窗口,然后使用GetStdHandle函数来获取标准输入和输出的句柄,以便进行文本输入和输出。你可以使用WriteConsole来输出文本,使用ReadConsole来获取用户的输入。最后,使用FreeConsole函数来关闭控制台窗口。

请注意,AllocConsole只能在Windows控制台应用程序或带有UI的应用程序中使用。它在纯粹的图形应用程序中不起作用。

相关推荐
春蕾夏荷_7282977251 天前
c++ easylogging 使用示例
c++·log·easylogging
YoungHong19923 天前
【Python进阶】告别繁琐Debug!Loguru一键输出异常日志与变量值
python·debug·异常处理·日志·loguru·log·logger
INFINI Labs14 天前
使用 Docker Compose 轻松实现 INFINI Console 离线部署与持久化管理
java·docker·eureka·devops·docker compose·console·easyserach
XueminXu14 天前
ClickHouse数据库的表引擎
数据库·clickhouse·log·表引擎·mergetree·special·integrations
亚林瓜子18 天前
AWS OpenSearch(ES)启用慢速日志
elasticsearch·性能调优·aws·log·opensearch·日志组
程语有云25 天前
生产事故-Caffeine缓存误用之临下班的救赎
java·缓存·caffeine·阻塞·log·生产事故
红烧code1 个月前
【Rust GUI开发入门】编写一个本地音乐播放器(15. 记录运行日志)
rust·gui·log·slint
亚林瓜子2 个月前
Spring中使用Apache Http客户端调第三方系统接口临时查看请求体参数
spring·http·apache·log
我好饿12 个月前
elk日志系统
linux·log
arbboter2 个月前
【代码】关于C#支持文件和文本框的简单日志实现
数据库·c#·日志·log·日志库