是否由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是。