You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Visual Studio运行程序如何阻止命令提示符弹窗且无需修改main函数?

配置实现方法

出现该差异的核心原因是旧项目除了修改子系统配置外,还额外指定了链接器入口点,你只修改子系统参数的情况下就会触发WinMain的要求,按照以下步骤操作即可复现旧项目的效果:

  • 右键项目打开「属性」页,顶部的配置项选择「所有配置」、平台选择「所有平台」,避免只修改单配置生效的问题
  • 依次展开 配置属性 → 链接器 → 系统,确认「子系统」设置为 Windows (/SUBSYSTEM:WINDOWS)
  • 依次展开 配置属性 → 链接器 → 高级,找到「入口点」配置项,根据你的项目字符集填入对应值:
    • 多字节字符集项目填入 mainCRTStartup
    • Unicode字符集项目填入 wmainCRTStartup
  • 保存配置后重新编译项目,原有普通main函数无需修改,运行时也不会弹出命令提示符窗口
原理解释

C运行时库(CRT)内置了多套初始化入口逻辑:

  • 子系统为CONSOLE时,默认入口点为mainCRTStartup/wmainCRTStartup,内部会调用用户编写的main/wmain函数,同时自动创建控制台窗口
  • 子系统为WINDOWS时,默认入口点为WinMainCRTStartup/wWinMainCRTStartup,内部会调用用户编写的WinMain/wWinMain函数,不会创建控制台窗口
    手动指定入口点为main系的CRT初始化函数后,链接器会跳过WinMain的检查,正常调用你编写的普通main函数,同时因为子系统配置为WINDOWS,不会额外创建控制台窗口,就能实现你要的效果。

内容的提问来源于stack exchange,提问作者JensB

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 07:57:01