c# - VC++属于托管类还是非托管类?

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

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

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

请澄清什么是非托管代码和托管代码?如果非托管代码不应在任何其他配置略有不同(如不同的主板、芯片组等)的机器上运行...VC++ 二进制文件如何在那里运行?

最佳答案

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

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

关于c# - VC++属于托管类还是非托管类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10137648/

相关文章:

c# - 返回泛型类型的泛型方法

c# - 如何从 litjson 中读取 bool 值

visual-c++ - Windows 凭据提供程序、过滤器和解锁工作站方案

C++ cin 在 while 循环中使用,但控制台屏幕未保持

c++ - END_COM_MAP 中 IUnknown 成员函数的用途是什么?

c# - Visual Studio 编译器如何将安全属性编译为 CIL?

c# - 从父列表创建子列表

c++ - 我写的这个计算 NCR 的函数有什么问题吗?

c++ - 如果没有\n则不会打印消息,而使用\n则打印消息

c++ - 多态性 : Accessing inherited class variable