3

我应该先说明我对 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;
}

我正在使用 Visual Studio 2017,该程序是 Win32(应用程序?)。此外,我已经排除了 Linker->System->Subsystem 是问题的可能性。

任何想法表示赞赏。

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

4

0 回答 0