什么运行我的 C# 应用程序?
What runs my C# application?
在Visual Studio中开发C#项目时,我有三种输出类型选项。控制台应用程序、Windows 应用程序和 Class 库。 AFAIK,DLL 和 EXE 之间的唯一区别是 EXE 应该定义一个入口点,并在双击文件时调用。但是,当我启动从控制台应用程序构建的 EXE 时,会创建一个控制台 window。所以很明显,除了 CLR 启动然后调用我的 Main 方法之外,还有其他事情正在发生。 什么启动了控制台 window? 当我启动从 Windows 应用程序构建的 EXE 时,是否还有一些其他代码 运行,或者仅仅是我的主要方法?
您的可移植可执行文件 (exe) 将包含有关其应用程序类型的信息。
Subsystem
标志 IMAGE_OPTIONAL_HEADER 定义应用程序构建时使用的用户界面类型。
IMAGE_SUBSYSTEM_WINDOWS_CUI
定义控制台应用程序,IMAGE_SUBSYSTEM_WINDOWS_GUI
定义windows应用程序等。
更多信息Peering Inside the PE: A Tour of the Win32 Portable Executable File Format
输出类型是项目的配置参数,它告诉Visual Studio编译时要做什么。如果设置为控制台应用程序,它将生成一个 exe 文件,其中包含启动控制台的代码 window。
dll和exe的区别不仅仅在于main方法。 Visual Studio 在创建控制台和调用 main 方法的 exe 文件中生成了额外的代码。有关exe文件如何执行此操作的详细信息,请参阅http://en.wikipedia.org/wiki/Portable_Executable。
在此 link 中,调查官添加了一些注释,其中提到了博客 post(第二个 link)。
Is it possible to build a Console app that does not display a console Window when double-clicked?
http://blogs.msdn.com/b/oldnewthing/archive/2009/01/01/9259142.aspx
与 Siram 的回答 内容相同,但为了帮助您以后进行搜索,这些是 google 上用于查找上述资源的关键字。 "double click exe launches console"
在Visual Studio中开发C#项目时,我有三种输出类型选项。控制台应用程序、Windows 应用程序和 Class 库。 AFAIK,DLL 和 EXE 之间的唯一区别是 EXE 应该定义一个入口点,并在双击文件时调用。但是,当我启动从控制台应用程序构建的 EXE 时,会创建一个控制台 window。所以很明显,除了 CLR 启动然后调用我的 Main 方法之外,还有其他事情正在发生。 什么启动了控制台 window? 当我启动从 Windows 应用程序构建的 EXE 时,是否还有一些其他代码 运行,或者仅仅是我的主要方法?
您的可移植可执行文件 (exe) 将包含有关其应用程序类型的信息。
Subsystem
标志 IMAGE_OPTIONAL_HEADER 定义应用程序构建时使用的用户界面类型。
IMAGE_SUBSYSTEM_WINDOWS_CUI
定义控制台应用程序,IMAGE_SUBSYSTEM_WINDOWS_GUI
定义windows应用程序等。
更多信息Peering Inside the PE: A Tour of the Win32 Portable Executable File Format
输出类型是项目的配置参数,它告诉Visual Studio编译时要做什么。如果设置为控制台应用程序,它将生成一个 exe 文件,其中包含启动控制台的代码 window。
dll和exe的区别不仅仅在于main方法。 Visual Studio 在创建控制台和调用 main 方法的 exe 文件中生成了额外的代码。有关exe文件如何执行此操作的详细信息,请参阅http://en.wikipedia.org/wiki/Portable_Executable。
在此 link 中,调查官添加了一些注释,其中提到了博客 post(第二个 link)。 Is it possible to build a Console app that does not display a console Window when double-clicked?
http://blogs.msdn.com/b/oldnewthing/archive/2009/01/01/9259142.aspx
与 Siram 的回答