VC ++是属于托管类还是非托管类?

时间:2012-04-13 08:34:09

标签: c# c++ visual-c++ clr

在阅读了有关托管代码和非托管代码的一些内容之后,我意识到在托管编译器中生成IL,任何机器都可以理解。我们需要做的就是将程序集部署到任何其他计算机上,CLR有助于正确运行它。

但是,我也读到VC ++不支持CLR及其非托管代码。但我们可以在任何机器上运行VC ++二进制文件而无需任何修改。它不需要与我们构建exe的机器具有相同的配置。

请说明完全非托管和托管代码是什么?,如果非托管代码不能运行在任何其他配置不同的机器上,如不同的主板,芯片组等......如何在那里运行VC ++二进制文件?

3 个答案:

答案 0 :(得分:4)

您无法在任何计算机上运行VC ++二进制文件而无需任何修改。你只能在Windows机器上运行它,甚至可以在任何机器上运行它。例如,当前的VC ++ 64位可执行文件不能在较旧的Win 95下运行。

托管代码是转换为IL的代码,由CLR在运行时解释。非托管代码是代码转换为 native 机器代码,由CPU直接运行。

答案 1 :(得分:1)

通常VC ++会生成非托管二进制文件。它们可以在所有Windows计算机上运行(可能使用c ++ - redist包)。

要使用c ++创建托管(.NET)应用程序,您需要使用C++/CLI

在这种情况下托管代码是.NET,非托管代码是本机二进制文件。

要运行非托管二进制文件,您需要在计算机上使用依赖库,以运行需要.NET Framework的托管代码。

答案 2 :(得分:0)

Visual C ++ 不是语言它是来自microsoft的IDE,它带有编译器和一组库。您可以使用此编译器生成托管代码或非托管代码。如果是非托管代码,它将生成一个exe(或dll或其他二进制文件),其格式为Windows。操作系统(在本例中为Windows)从您处理所有其他详细信息,如处理器,主板等。