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


    看控制日志实时

    #ifdef _DEBUG
    	AllocConsole();
    	freopen("CONOUT$", "w+t", stdout); //#打开log窗口
    #endif
    
    • 1
    • 2
    • 3
    • 4

    还有另一种方法

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

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

    #include 
    
    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;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26

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

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

  • 相关阅读:
    文件包含漏洞
    三菱Q系列PLC远程调试并实现4G/5G数据通讯?
    JavaSE编写软件工程师管理系统
    JVM类加载(类加载过程、双亲委派模型)
    记账时,花费如何按类别分类
    Nexus3 安装 及 配置 docker 私有、代理 仓库
    Redis的C客户端(hiredis库)使用
    Django里多app
    Python计时库——Time库的使用详解
    研究一下 JSON.parse(JSON.stringify(obj))
  • 原文地址:https://blog.csdn.net/chenhao0568/article/details/134327223