Является ли память Visual C++ управляемой структурой Dot Net


1

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

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

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

0

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

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

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

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


0

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

Рекомендуемый способ обмена сообщениями через .Net через WebDAV.


1

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