1

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

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

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

4

3 回答 3

1

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

于 2008-08-21T12:44:17.590 回答
0

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

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

于 2008-08-21T11:59:38.260 回答
0

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

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

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

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

于 2008-08-21T12:00:51.690 回答