【问题标题】:Managed Types C++ [duplicate]托管类型 C++ [重复]
【发布时间】:2025-12-30 07:40:07
【问题描述】:

可能重复:
What's the difference between a non-unmanaged type and a managed type?

我最近在使用 C++ 开发一个应用程序,我遇到了一些叫做托管类型、本机类型、编组等的东西。我不太清楚这些术语的含义。从我一直在阅读的内容来看,似乎我们已经在 c++ 中托管类型以允许访问某些 .Net 功能(.Net 本机类型),并且我们使用编组将托管类型转换为本机类型(反之亦然)。我对么?谢谢~

【问题讨论】:

  • @Zeta:不,另一个问题是与错误消息中的“非托管类型”一词混淆,而不是托管类型是什么。

标签: c# c++ .net c++-cli


【解决方案1】:

托管 C++ 曾经/现在是 Microsoft 创建的。使用托管 C++ 框架开发的应用程序在虚拟机环境中的运行方式与 .NET 应用程序相同。这提供了更多的运行时检查、内存分配等便利。此外,VM 提供垃圾收集,就像 .NET 为 C# 提供的一样。托管框架的限制是 VM 不支持多重继承(C# 不支持多重继承)。因此,托管 C++ 开发受到限制。 编组也称为序列化,其中对象被转换为其他“简单”类型,以便通过 RPC 传输到其他进程或机器。

【讨论】: