关于C#编译执行过程中的一个细节问题

qq_38234381 2021-04-04 05:00:59
我现在知道C#被编译器编译为程序集后,是以exe或者dll形式存在的,同时也知道编译的程序集中包括有CIL等信息,想问下这部分信息是存储于这两个文件吗?如果是,exe是机器码,dll又是什么呢?求大神给个解答
...全文
421 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_38234381 2021-04-05
  • 打赏
  • 举报
回复
引用 2 楼 兔子党逍遥 的回复:
标准的PE文件,exe有个main或WinMain方法,dll有DllMain方法,启动会对应的调用入口方法。 .net的exe和dll启动后加载.net runtime,exe查找static main方法并调用,dll么,好像没执行什么方法。 AppDomain.CurrentDomain.Load 可以动态加载.net dll文件 回头我用IDA看看exe和dll代码再回复你…
好的,谢谢大佬
xuzuning 2021-04-05
  • 打赏
  • 举报
回复
通用中间语言(Common Intermediate Language,简称CIL)(曾经被称为微软中间语言或MSIL)是一种属于通用语言架构和.NET框架的低阶(lowest-level)的人类可读的编程语言。目标为.NET 框架的语言被编译成CIL,然后汇编成字节码。CIL类似一个面向对象的汇编语言,并且它是完全基于堆栈的。它运行在虚拟机上,其主要的语言有C#、Visual Basic .NET、C++/CLI以及 J#。 在.NET语言的测试版中,CIL原本叫做微软中间语言(MSIL)。由于C#和通用语言架构的标准化,字节码已经官方地成为了CIL。因此,CIL仍旧经常与MSIL相提并论,特别是那些.NET语言的老用户。
xuanxinfu0 2021-04-05
  • 打赏
  • 举报
回复
111111111111111111111
兔子-顾问 2021-04-05
  • 打赏
  • 举报
回复
标准的PE文件,exe有个main或WinMain方法,dll有DllMain方法,启动会对应的调用入口方法。 .net的exe和dll启动后加载.net runtime,exe查找static main方法并调用,dll么,好像没执行什么方法。 AppDomain.CurrentDomain.Load 可以动态加载.net dll文件 回头我用IDA看看exe和dll代码再回复你…
江湖评谈 2021-04-04
  • 打赏
  • 举报
回复
exe里面存的是IL信息,编译后的信息是动态的,存储于CLR提供的托管堆中 程序释放了就没有了。

110,526

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧