在控制台中看不到Windows程序的stdout(在Windows上用Clang编译)

问题描述 投票:0回答:2

当我使用clang构建一个简单的控制台应用程序时,它工作正常:

void main() { puts("HELLO"); }

但是当我用WinMain创建一个Windows应用程序时,我看不到stdout。

必须有一个标志来修复它,如MinGW的-mconsole

c windows winapi clang
2个回答
2
投票

用于其他GUI应用程序的快速stdout启用程序:

if (AllocConsole())
{
    FILE* fi = 0;
    freopen_s(&fi, "CONOUT$", "w", stdout);
}

然后std::coutprintf工作。


2
投票

WinMain是一个用于Windows图形应用程序的自定义微软入口功能(带有窗口和菜单等)。它默认没有控制台。

如果你想要一个控制台程序,你应该使用标准的main函数。

如果你想要一个也有控制台的图形应用程序(WinMain),那就有点工作了。检查How do I get console output in C++ with a Windows program?如何实现这一目标。

© www.soinside.com 2019 - 2024. All rights reserved.