【问题标题】:Is Visual C++ memory managed by the Dot Net frameworkVisual C++ 内存是否由 Dot Net 框架管理
【发布时间】:2010-09-06 09:17:18
【问题描述】:

最近,我一直在处理通过 .NET 框架访问 MAPI 时出现的错误(如 this article 中所述)。我现在留下了一系列内存访问冲突错误。

为了解决这些问题,我一直在尝试使用 this 3rd party component,它具有 Visual C++ 核心。不幸的是 - 我们仍然有同样的错误。

我个人从未使用过 Visual C++,但我的问题是:如果 C++ 库是使用 Visual Studio 2005 编译的,使用 Visual C++ - 项目的内存是否也由 .NET 框架管理,这因此会使其受到与我们正在使用的 .NET 库相同的问题吗?还是我找错树了?

【问题讨论】:

    标签: .net visual-c++ memory


    【解决方案1】:

    前面的两个答案都提到了“托管 C++”,这是他们为允许您在 .NET 环境中使用托管 C++ 而做的一个旧的补充。它不是一等公民 - 不像 C++/CLI (link text。但要回答你最初的问题,不,Visual C++ 不是由 .NET 运行时管理的。托管的 C++ 和 C++/CLI 是。

    【讨论】:

      【解决方案2】:

      我不完全确定你在问什么,但我会试一试。

      Visual C++ 是一个纯 C/C++ 编译器,因此没有 .NET 的内存管理,也没有任何运行时——您必须手动调用 new 和 delete。

      .NET 还提供 C++/CLI,它是针对 .NET 运行时的 C++ 的略微修改版本,并且是 GC 感知的——例如。它的内存由 .NET 运行时管理。

      如果没有关于您的错误的更多详细信息,我真的无法提出任何建议,除了建议您确保使用适当的 GC 保护,并在任何需要它们的地方提供终结器。

      【讨论】:

        【解决方案3】:

        除非您使用的是托管 C++(听起来不像),否则不,内存不是由 CLR 管理的。

        在 .Net 中与 Exchange 对话的推荐方法是通过 WebDAV。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-04-04
          • 2021-09-08
          • 1970-01-01
          • 2011-11-11
          • 1970-01-01
          • 2014-05-15
          • 2011-01-04
          相关资源
          最近更新 更多