Visual C++ は、無効なパラメーターが に渡されたことを報告していますfclose
。そのパラメーターは、FILE*
freopen_s によって返されます。
#include <WinSock2.h>
#include <iostream>
int APIENTRY wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLine, int nCmdShow) {
UNREFERENCED_PARAMETER(hPrevInstance);
UNREFERENCED_PARAMETER(nCmdShow);
#ifdef _DEBUG
AllocConsole();
#else
AttachConsole(ATTACH_PARENT_PROCESS);
#endif
FILE* pCout;
freopen_s(&pCout, "conout$", "w", stdout); //returns 0
fclose(pCout);
#ifdef _DEBUG
system("pause");
#endif
FreeConsole();
return 0;
}
プログラムの最後に conout$ を閉じようとしてはいけませんか? ファイル ポインタがすべてのコンソール出力のプロセス間で共有されているため、例外がスローされていますか?