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

时间:2020-03-05 18:41:27  来源:igfitidea点击:

最近,我一直在处理通过.NET框架访问MAPI的错误(如本文所述)。现在,我遇到了一系列的内存访问冲突错误。

为了解决这些问题,我一直在尝试使用具有Visual C ++核心的第3方组件。不幸的是我们仍然有同样的错误。

我个人从未使用过Visual C ++,但是我的问题是:如果C ++库是使用Visual Studio 2005编译的,则使用Visual C ++也会使项目的内存也由.NET框架进行管理,因此可以做到这一点。会遇到与我们使用的.NET库相同的问题?还是我吠错了树?

解决方案

回答

除非我们使用的是Managed C ++(听起来好像不是),否则不会,CLR不会管理内存。

在.Net中与Exchange进行通信的推荐方法是通过WebDAV。

回答

我不确定我们要问什么,但我会给我们一个机会。

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

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

如果没有有关错误的更多详细信息,除了建议我们确保使用适当的GC防护程序以及在需要的地方提供finalizers之外,我无法提供任何建议。

回答

前面的两个答案都提到了"托管C ++",这是一个旧的添加程序,它们使我们可以在.NET环境中使用托管C ++。与C ++ / CLI(链接文本)不同,它不是一流的公民。但是要回答原始问题,不,Visual C ++不由.NET运行时管理。托管C ++和C ++ / CLI是。