是由Dot Net框架管理的Visual C ++内存

时间:2008-08-21 11:47:12

标签: .net visual-c++ memory

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

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

我个人从未使用过Visual C ++,但我的问题是:如果使用Visual C ++使用Visual C ++编译C ++库,那么项目的内存也会由.NET框架管理,因此会使它遇到与我们正在使用的.NET库相同的问题吗?还是我在错误的树上吠叫?

3 个答案:

答案 0 :(得分:1)

之前的两个答案都提到了“Managed C ++”,这是一个很老的例子,它们允许您在.NET环境中使用托管C ++。它不是一流的公民 - 不像C ++ / CLI(link text。但回答你的原始问题,不,Visual C ++不是由.NET运行时管理的。托管C ++和C ++ / CLI是。< / p>

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

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

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

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

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