我该如何在 Microsoft Visual C++ 中禁用控制台窗口显示?
在您的控制台应用程序中,转到
Properties > Linker > System
将SubSystem
更改为Windows
并在您的代码中替换
int _tmain(int argc, _TCHAR* argv[])
使用
int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow)
并添加#include <windows.h>
这应该可以避免在控制台应用程序中显示控制台窗口。
HWND hWnd = GetConsoleWindow();
ShowWindow( hWnd, SW_HIDE );
针对我的情况(vs2022 c++),我所做的只是:
修改
int main() {
为
int WinMain() {
并且
属性 > 链接器 > 系统
将 子系统
改为 Windows
您可以通过操纵预编译的EXE子系统来禁用控制台-这样您就不需要在代码中进行任何更改,因为您正在处理最终产品-消极方面是每次重新编译项目时都需要这样做。 您可以通过HEX编辑器或使用免费的CFF Explorer来完成。
您可以进行二进制比较并查找原始PE标头中的确切位置,然后可能在VS中完成一些自动化操作。
针对CMake用户。
add_executable(${exeName} WIN32)
你需要使用 WinMain
代替 main
作为入口点符号。
你的问题相当模糊,所以我会尝试按照我的理解来回答... 如果你不想要一个控制台窗口,可以尝试使用不同的子系统。具体来说,你可能需要使用Windows或Native子系统,而不是Console子系统。