当 运行 通过 CLI/VSCode 调试器时,Win32 window 不显示

Win32 window not showing when ran through CLI/VSCode debugger

我正在创建一个 Win32 应用程序,我遵循了一些创建 Win32 window 的设置代码,而不需要可以找到 here 的 WinMain。代码构建得很好,如果我 运行 通过在文件浏览器中打开应用程序,它 运行 没问题。但是,如果我通过命令行 运行 它只输出控制台日志,而不会创建 window。我认为这也是为什么如果我通过 VSCode 的调试器 运行 它也不会启动 window 的原因。有没有人以前遇到过这个问题并找到了解决办法?如果您不能同时使用调试器和查看它,那么不得不调试 GUI 应用程序。

这段代码有错误:

STARTUPINFO si;
GetStartupInfo(&si);  
int nCmdShow = si.wShowWindow;

您忘记检查 si.dwFlags,如 the documentation for wShowWindow 所示:

If dwFlags specifies STARTF_USESHOWWINDOW, this member can be any of the values that can be specified in the nCmdShow parameter for the ShowWindow function, except for SW_SHOWDEFAULT. Otherwise, this member is ignored.