Управляется ли память Visual C++ платформой Dot Net?

StackOverflow https://stackoverflow.com/questions/19653

  •  09-06-2019
  •  | 
  •  

Вопрос

Недавно я столкнулся с ошибкой доступа к MAPI через платформу .NET (как описано в разделе Эта статья).Теперь у меня осталась серия ошибок нарушения доступа к памяти.

Чтобы обойти эти проблемы, я пытался использовать этот сторонний компонент, который имеет ядро ​​Visual C++.К сожалению, у нас все еще возникают те же ошибки.

Лично я никогда не использовал Visual C++, но у меня вопрос:если библиотека C++ скомпилирована с использованием Visual Studio 2005, с использованием Visual C++ - становится ли память проекта также управляемой платформой .NET, что, следовательно, приведет к тем же проблемам, что и библиотеки .NET, которые мы используем? с использованием?Или я лаю не на то дерево?

Это было полезно?

Решение

Я не совсем понимаю, о чем вы спрашиваете, но я попробую.

Visual C++ — это чистый компилятор C/C++, поэтому в нем нет ни средств управления памятью .NET, ни среды выполнения. Вам придется вручную вызывать new и удалять.

.NET также предоставляет C++/CLI, который представляет собой слегка модифицированную версию C++, предназначенную для среды выполнения .NET и поддерживающую GC, например.его память управляется средой выполнения .NET.

Без более подробной информации о вашей ошибке я не могу дать никаких предложений, кроме предложения вам убедиться, что вы используете соответствующие средства защиты GC и предоставить финализаторы в любом месте, где они необходимы.

Другие советы

В двух предыдущих ответах упоминался «Управляемый C++», это старая добавка, которую они сделали, чтобы позволить вам использовать управляемый C++ в среде .NET.Это не был первоклассный гражданин - в отличие от C++/CLI (текст ссылки.Но отвечая на ваш первоначальный вопрос: нет, Visual C++ не управляется средой выполнения .NET.Управляемый C++ и C++/CLI.

Если вы не используете Managed C++ (что, похоже, не так), то нет, память не управляется CLR.

Рекомендуемый метод взаимодействия с Exchange в .Net — через WebDAV.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top