Win32 控制台写入 (C/C++)

Win32 console write (C/C++)

我想在 C++ 程序中写入控制台而不使用 'std' 库,也就是说,只使用 "Windows.h" 中的函数。原因是我想深入研究可移植的可执行文件并查看调用的是这个函数,而不是一堆函数层。任何人都知道如何做到这一点 and/or 我在哪里可以找到 "Windows.h" 函数的指南?

使用纯 Win API:

HANDLE stdOut = GetStdHandle(STD_OUTPUT_HANDLE);
if (stdOut != NULL && stdOut != INVALID_HANDLE_VALUE)
{
    DWORD written = 0;
    const char *message = "hello world";
    WriteConsoleA(stdOut, message, strlen(message), &written, NULL);
}

MSDN 是最好的文档来源之一:

替代 Win32 API:

#ifndef UNICODE
    std::stringstream ss;
    ss << TEXT("Hello world!") << std::endl;

    OutputDebugString(ss.str().c_str());

    OutputDebugStringA(ss.str().c_str());
#endif

#ifdef UNICODE
    std::wstringstream wss;
    wss << TEXT("Hello world!") << std::endl;

    OutputDebugString(ss.str().c_str());

    OutputDebugStringW(wss.str().c_str());
#endif

* OutputDebugString 是一个宏。

参考: