VC++ 属于托管或非托管类别



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

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

请澄清非托管和托管代码

到底是什么?,如果非托管代码不应该在任何其他配置几乎没有不同(如不同的主板、芯片组等)的机器上运行......VC++ 二进制文件如何在那里运行?

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

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

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

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

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

若要运行

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

Visual C++不是一种语言,它是微软的一个IDE,它带有一个编译器和一组库。可以使用此编译器生成托管代码或非托管代码。对于非托管代码,它将生成一个 exe(或 dll 或其他二进制文件),其格式为 Windows 可以理解。操作系统(在本例中为 Windows)会从您那里抽象出所有其他细节,例如处理器、主板等。

最新更新