托管代码:由公共语言运行时(Common Language Runtime)执行的代码,即以CLR为目标的代码。
非托管代码:不以CLR为目标的代码。
.NET Framework 可由非托管组件承载,这些组件将公共语言运行时加载到它们的进程中并启动托管代码的执行,从而创建一个可以同时利用托管和非托管功能的软件环境。.NET Framework 不但提供若干个运行时宿主,而且还支持第三方运行时宿主的开发。
参考资料:
http://msdn.microsoft.com/zh-cn/library/zw4w595w.aspx
托管代码的的执行过程:
1.选择编译器。
为获得公共语言运行时提供的优点,必须使用一个或多个针对运行时的语言编译器。
2.将代码编译为 MSIL。
编译将源代码翻译为 Microsoft 中间语言 (MSIL) 并生成所需的元数据。
3.将 MSIL 编译为本机代码。
在执行时,实时 (JIT) 编译器将 MSIL 翻译为本机代码。在此编译过程中,代码必须通过验证过程,该过程检查 MSIL 和元数据以查看是否可以将代码确定为类型安全。
4.运行代码。
参考资料:
http://msdn.microsoft.com/zh-cn/library/k5532s8a.aspx
分享到:
相关推荐
托管代码的优点 Microsoft中间语言与Java字节代码共享一种理念:它们都是一种低级语言 语法很简单 使用数字代码 而不是文本代码 可以非常快速地转换为内部机器码 对于代码来说 这种精心设计的通用语法 有很大的优点...
CLR 完全介绍 托管代码与非托管代码之间的封送处理
这是一个不错的,讲托管代码非托管代码的 ppt
详细解析托管代码与非托管代码以及dll调用.
可以实现利用非托管代码来访问由.NET生成的托管代码。
C#托管代码与C++非托管代码互相调用实例
C#调用非托管代码
对于非托管代码API函数中如何使用委托实现回调方法!
介绍了在C#下,系统怎样与非托管代码交互操作
现在很多人都使用C#来开发windows mobile上的应用程序,因此,有必要给出这个“使用托管代码开发WINCE自带数据库”的例子。这篇文章参考了Joao Paulo Figueira在2005年写的文章《CEDB .NET》,并对作者给出的代码...
C#托管代码与C++非托管代码互相调使用.pdf
C#调用非托管代码时参考(整理)有代码, 不返回值的参数,带返回值(char *),带返回值(其他类型),传递结构体指针(C++填充),传递结构体数组(C++来填充),注意问题 类型不一致,会导致调用失败, (1) long 类型,在C++中...
详细介绍了托管代码的机制 方便更深入的了解原理
使用SOS - 在Visual Studio中启用非托管代码调试来支持本机代码调试 使用SOS - 在Visual Studio中启用非托管代码调试来支持本机代码调试
Git代码托管管理工具安装包 Git代码托管管理工具安装包 Git代码托管管理工具安装包 Git代码托管管理工具安装包 Git代码托管管理工具安装包 Git代码托管管理工具安装包 Git代码托管管理工具安装包 Git代码托管管理...
P/Invoke Interop Assistant,它支持托管代码和非托管代码之间的方法签名的转换,而且直接生成相关的C#或者是VB的方法调用代码。这个签名的转换,不只是适用于Windows的方法签名,只要给定一个C头文件,就可以转换...
云代码托管平台_阿里云数十万企业都在用的代码管理平台,提供代码托管,代码评审,代码 扫描,质量检测,持续集成等功能,帮助企业实现安全,稳定,高效的代码托管和研发管理. 阿里云 2022-04
李维 《Dephi.NET托管与非托管代码》 网友(邦)整理 EMail: shuaihj@163.com
视频,简单介绍.net和托管代码之间的关系,方便大家了解.net框架
Visual C++.NET中的编译器和链接器扩展为您提供了Microsoft Visual C#.NET所不具有的.NET转悠功能--包括更方便地访问非托管代码和在同一个源文件中混合托管代码和非托管代码。 本书详细介绍了Visual C++.NET托管...