我从 Visual Studio 2008 MFC 应用程序模板创建了一个 MFC 应用程序。问题是我想显示一个正在执行的控制台,而不是默认 MFC 应用程序模板创建的窗口(就像我们选择 Win32 控制台应用程序模板时显示的那样)。
谁能告诉我怎么可能!在 MFC 应用程序中显示控制台而不是窗口?
我从 Visual Studio 2008 MFC 应用程序模板创建了一个 MFC 应用程序。问题是我想显示一个正在执行的控制台,而不是默认 MFC 应用程序模板创建的窗口(就像我们选择 Win32 控制台应用程序模板时显示的那样)。
谁能告诉我怎么可能!在 MFC 应用程序中显示控制台而不是窗口?
当您创建一个新的 Win32 控制台应用程序时,该向导有一个复选框来为 MFC 添加通用头文件 - 选中它。
这不是很常见,因为在控制台应用程序中没有多少 MFC 有用。您将不会运行 MFC 的应用程序消息泵,因此很多事情都无法正常工作。
在您的 stdafx.h(vs2019 之前)或 pch.h(vs2019)中:
#ifdef _UNICODE
#pragma comment(linker, "/entry:wWinMainCRTStartup /subsystem:console")
#else
#pragma comment(linker, "/entry:WinMainCRTStartup /subsystem:console")
#endif
当 MFC 应用程序窗口运行时,您可以将项目的子系统更改为控制台,同时控制台也在运行。
如果您只想运行控制台,请创建一个控制台项目。
将项目设置从Linker > System > SubSystem更改为“CONSOLE”而不是“WINDOWS”。
此外,如果您想在 Windows 应用程序中附加控制台,请使用 Visual Studio 工具中的“Editbin”实用程序。它位于 \VC\bin\editbin.exe
editbin.exe /SUBSYSTEM:CONSOLE YourApplicationPath.exe
这将在您的 Windows 应用程序中附加控制台。