当我使用clang构建一个简单的控制台应用程序时,它工作正常:
void main() { puts("HELLO"); }
但是当我用WinMain
创建一个Windows应用程序时,我看不到stdout。
必须有一个标志来修复它,如MinGW的-mconsole
用于其他GUI应用程序的快速stdout启用程序:
if (AllocConsole())
{
FILE* fi = 0;
freopen_s(&fi, "CONOUT$", "w", stdout);
}
然后std::cout
和printf
工作。
WinMain
是一个用于Windows图形应用程序的自定义微软入口功能(带有窗口和菜单等)。它默认没有控制台。
如果你想要一个控制台程序,你应该使用标准的main
函数。
如果你想要一个也有控制台的图形应用程序(WinMain
),那就有点工作了。检查How do I get console output in C++ with a Windows program?如何实现这一目标。