例如,在GlowCode探查网站看时,它说:

“GlowCode 6.2和x64轮廓天然的,管理,和混合的C ++,C#,.NET代码”

这是什么意思?

有帮助吗?

解决方案

本机代码是其内存是不是“管理”,如,内存不释放你(++” C删除和C的自由,例如)的代码,没有引用计数,无垃圾收集。托管代码,你猜对了,是它的内存是免费的,为您分配,垃圾收集和其他东西。代码

混合代码是当你已设法调用到非托管代码层。通常情况下,当你有一个纯的非托管C ++ DLL和您使用P-从.NET称之为/调用。

其他提示

本机代码被编译直接与OS合作。但是托管代码,预编译(在Java中发言字节码),但随后被即时编译器在运行时处理为本地代码。托管代码具有在不同的操作系统上运行的潜在的有趣的副作用,因为不创建机器代码,直到虚拟机实际使用它。这样一来,您就可以在Windows上运行.NET应用程序,并在Linux或Mac安装了单声道运行时运行它们。便携性是不是干净的作为当前Java是(因为微软的自然封闭的架构),但概念。

如果您正在运行一个非托管的应用程序,代码已经被编译为指定的OS /硬件上运行。任何移植到另一个OS /指令集将丢失,必须重新编译以执行

本地代码被写入,它在其上运行,并且直接由所述处理器执行的计算机的“天然的”机器语言。

托管代码被写入,需要另一个程序来运行一个特殊的语言(即,管理)它。此其它程序通常被称为一个解释器,因为它解释特殊的语言。

C和C ++程序是天然的。

Java和C#(以及与此有关的所有.NET语言)进行管理。

托管C ++是C ++的一种特殊形式,在.NET解释程序运行。

一个混合程序是使用代码,本机和托管的程序。

这公共语言运行库(CLR)的控制下运行的代码被称为托管代码。这并不在CLR下运行代码被称为本机代码。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top