.Net 应用程序与进程的简单理解,请指正

putongren 2004-11-04 12:01:36
本人最近对 .Net 程序形成一点简单认识,希望大家指正。

1. .Net 应用程序加载后最终变成一个普通的进程,windows 按照普通进程对待,如调度及异常处理。

2. .Net 应用程序编译后形成 CLS 编码(不是x86的机器码加C函数调用)。

3. .Net 应用程序(实时编译为x86代码后)所有的基础调用都通过 .Net 类库入口实现,.Net 类库入口检查调用的合法性等,然后再进一步调用传统的操作系统的函数入口或 COM 入口。

4. .Net 应用程序的加载过程:创建一个进程,把 .Net 的支持库映射到进程地址空间中,把应用程序的 CLS 编码放入进程内存空间,调用 .Net 的支持库的某个开始函数,从这个函数开始分析 CLS 编码,把所有的 CLS 函数入口记录为尚未编译,然后把函数 main 编译成 x86 机器码,开始调用 main,main 调用其他函数时再先编译后调用。这种方式叫托管。操作系统对整个程序的运行按照一般进程对待。

有无理解上的差错,请指点一二。多谢!
...全文
90 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
北京的雾霾天 2004-11-04
  • 打赏
  • 举报
回复
差就多也就是这样的:)
bobotiger 2004-11-04
  • 打赏
  • 举报
回复
晕,理解到这一步了,我还在基本的东西上挣扎
sarcophile 2004-11-04
  • 打赏
  • 举报
回复
.Net 应用程序编译后形成 IL 语言,好像
运行时要对数据类型进行检查,尤其是函数参数传递的数据,称为类型安全
托管堆与非托管堆不同,可以自动实现垃圾回收自动释放并整理空间,不能直接用指针访问

7,540

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 VC.NET
社区管理员
  • VC.NET社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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