繁体   English   中英

如何抑制运行 C# Winforms 应用程序时弹出的黑色 Shell?

[英]How Can I Suppress the Black Shell that Pops Up When I Run my C# Winforms Application?

当我通过单击 .exe 文件运行我的 C# 应用程序(在 VS 中编译,发布版本)时,我得到一个黑色的 shell 以及我的 GUI。 我不确定为什么会出现这个黑色的 shell,因为它没有出现在我的任何其他 GUI 应用程序中。 怎样才能抑制黑色shell? 在编译之前我是否不小心点击了我不应该拥有的东西?

正如您在下面看到的,我的 GUI 应用程序和黑色的 shell(在应用程序后面)。

在此处输入图像描述

以下是我执行应用程序的目录结构:

在此处输入图像描述

如果项目1的“输出类型”不小心从“Windows 应用程序”更改为“控制台应用程序”,您会得到非常类似的症状。

假设您开始使用 Windows 应用程序模板,您的主线程仍将是 STA,并且没有任何东西可以阻止控制台应用程序运行 windows 消息循环并显示 UI(因为模板将设置)。 但是你总是得到一个控制台 window 连接到控制台应用程序。

如果发生这种情况,您只需将 Output 类型改回 Windows 应用程序即可。


1项目属性,应用程序选项卡。

默认情况下,Winforms 应用程序不显示控制台,这是您需要主动调用的。 这通常是通过调用本机AllocConsole function 来完成的:

https://www.pinvoke.net/default.aspx/kernel32.allocconsole

我会搜索代码库,看看是否在任何地方都调用了AllocConsole

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM