Anz*_*rio 77
本机代码是其内存不是"托管"的代码,因为内存不会为您释放(例如,C++'删除和C是免费的),没有引用计数,没有垃圾回收.您猜对了,托管代码是代码,其内存是免费的,并为您分配,垃圾回收和其他好东西.
混合代码是指具有调用非托管图层的托管代码.通常,当你有一个纯粹的非托管C++ DLL并且你使用P/invoke从.NET调用它.
Way*_*man 46
编译本机代码以直接与OS一起工作.但是,托管代码是预编译的(Java语言中的字节码),然后由Just In Time Compiler在运行时处理为本机代码.托管代码具有在不同操作系统上运行的潜在有趣的副作用,因为在VM实际使用它之前不会创建机器代码.这样,您就可以在Windows上运行.NET应用程序,并在安装了Mono运行时的Linux或Mac上运行它们.可移植性目前并不像Java那样干净(因为微软自然封闭的架构),但这个概念仍然存在.
如果您运行的是非托管应用程序,则代码已编译为针对指定的OS /硬件运行.对另一个OS /指令集的任何可移植性都将丢失,必须重新编译才能执行.
one*_*els 30
本机代码以其运行的计算机的"本机"机器语言编写,并由处理器直接执行.
托管代码是用一种特殊语言编写的,需要另一个程序来运行(即管理)它.这个其他程序通常被称为解释器,因为它解释了特殊语言.
C和C++程序是原生的.
管理Java和C#(以及所有.NET语言).
托管C++是一种在.NET解释器中运行的特殊形式的C++.
混合程序是一个使用本机和托管代码的程序.
| 归档时间: |
|
| 查看次数: |
61918 次 |
| 最近记录: |