没有从 WinMain 打印到标准输出 - C/VS 2017

use*_*685 5 c printf winmain visual-studio-2017

我应该先说一下,我对 VS 比较陌生,但对 C 来说并不陌生。

我遇到的问题是打印时标准输出上没有显示任何内容。printf/_s 和 fprintf/_s(stdout, ...) 都不会产生任何输出。有趣的是, fprinf(file, ...) 实际上确实会生成给定文件的输出。这是否有可能与 printf 弃用有关(我已经尝试过 preproc._CRT_SECURE_NO_DEPRECATE)?

下面是我的完整程序:

#include <winsock2.h>
#include <ws2tcpip.h>
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)                  
{
    FILE * pFile = fopen("outputTest.txt", "w");
    fprintf(pFile, "At top of main1.\n");       //works
    printf("At top of main2.\n");               //doesn't work
    printf_s("At top of main3.\n");             //doesn't work
    fprintf_s(stdout, "At top of main4.\n");    //doesn't work
    fflush(stdout);
    fclose(pFile);
    return FALSE;
}
Run Code Online (Sandbox Code Playgroud)

我使用的是 Visual Studio 2017,该程序是 Win32(应用程序?)。我还排除了链接器->系统->子系统是问题的可能性。

任何想法表示赞赏。

编辑:我不确定这是否重要,但 VS 顶部的“解决方案平台”下拉菜单显示 Win32,这与创建新的“Windows 桌面应用程序”时不同。其中写着 x86。