我的C#应用程序运行需要什么?

3
在Visual Studio中开发C#项目时,我有三种输出类型可选:控制台应用程序、Windows应用程序和类库。据我所知,DLL和EXE之间唯一的区别是EXE需要定义一个入口点,当文件双击时会调用该入口点。然而,当我启动从控制台应用程序构建的EXE时,会创建一个控制台窗口。所以显然除了CLR被启动并调用我的Main方法之外,还发生了其他事情。 是什么启动了控制台窗口? 当我启动从Windows应用程序构建的EXE时,是否还运行其他代码,或者只有我的主方法在运行?
3个回答

4

2
输出类型是项目的配置参数,告诉Visual Studio在编译时要做什么。如果设置为控制台应用程序(Console Application),它将生成一个带有启动控制台窗口代码的exe文件。
DLL和EXE之间的区别不仅仅在于主方法。Visual Studio在exe文件中生成了额外的代码来创建控制台并调用主方法。关于exe文件如何执行这个过程的详细信息,请参考http://en.wikipedia.org/wiki/Portable_Executable

您可以按照此处的描述使用反编译器:https://dev59.com/ZXVC5IYBdhLWcg3wz0h9。您还可以使用7-zip来读取一些文本文件。 - Kentative

2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接