【发布时间】:2021-06-30 20:08:39
【问题描述】:
Visual Studio 不会显示任何错误,但在使用调试或不使用控制台运行时会立即关闭。我使用了一个while循环来防止它关闭但不显示printf字符串。 这是我的代码:
#include <Windows.h>
int APIENTRY wWinMain(_In_ HINSTANCE hInstance,
_In_opt_ HINSTANCE hPrevInstance,
_In_ LPWSTR lpCmdLine,
_In_ int nCmdShow)
{
AllocConsole();
HWND windowHandle = FindWindowA("ConsoleWindowClass", NULL);
ShowWindow(windowHandle, 10);
printf("Blehh");
return 0;
}
【问题讨论】:
-
但是你真的在这里等什么?你从 wWinMain 和 ExitProcess 中退出调用
-
附带说明,您可以使用
GetConsoleWindow()获取与调用进程关联的控制台的HWND,您不需要使用FindWindow(),如果可能会发现错误的窗口一次有多个控制台处于活动状态。 -
只需要控制台保持打开并显示 printf 字符串
-
@YashMalviya 问题是进程终止,销毁它创建的控制台,一旦
wWinMain()退出,所以你需要阻止它退出,就像 paulsm4 的答案显示的那样