문제

최근에 .NET 프레임워크를 통해 MAPI에 액세스할 때 오류가 발생했습니다(아래 설명 참조). 이 기사).이제 일련의 메모리 액세스 위반 오류가 남았습니다.

문제를 해결하기 위해 다음을 사용하려고했습니다. 이 타사 구성요소, Visual C++ 코어가 있습니다.불행하게도 여전히 같은 오류가 발생하고 있습니다.

저는 개인적으로 Visual C++를 사용해 본 적이 없지만 제 질문은 다음과 같습니다.C++ 라이브러리가 Visual Studio 2005, Visual C++를 사용하여 컴파일된 경우 프로젝트의 메모리도 .NET 프레임워크에 의해 관리됩니까? 따라서 우리가 겪고 있는 .NET 라이브러리와 동일한 문제가 발생하게 됩니다. 사용 중?아니면 내가 잘못된 나무를 짖고 있는 걸까요?

도움이 되었습니까?

해결책

무엇을 질문하시는지 잘 모르겠지만 한번 시도해 보겠습니다.

Visual C++는 순수 C/C++ 컴파일러이므로 .NET의 메모리 관리나 런타임이 전혀 없습니다. 수동으로 new를 호출하고 삭제해야 합니다.

.NET은 또한 .NET 런타임을 대상으로 하고 GC를 인식하는 C++의 약간 수정된 버전인 C++/CLI를 제공합니다.해당 메모리는 .NET 런타임에 의해 관리됩니다.

귀하의 버그에 대한 자세한 내용이 없으면 적절한 GC 가드를 사용하고 필요한 곳에 종료자를 제공하도록 제안하는 것 외에는 어떤 제안도 할 수 없습니다.

다른 팁

이전 두 답변에서는 "관리형 C++"를 언급했는데, 이는 .NET 환경에서 관리형 C++를 사용할 수 있도록 하기 위해 수행한 오래된 추가 기능입니다.C++/CLI(링크 텍스트.하지만 원래 질문에 대답하자면 아니요, Visual C++는 .NET 런타임에서 관리되지 않습니다.관리형 C++ 및 C++/CLI가 있습니다.

Managed C++(실제로는 그렇지 않은 것 같지만)를 사용하지 않는 한 메모리는 CLR에 의해 관리되지 않습니다.

.Net에서 Exchange와 통신하는 권장 방법은 WebDAV를 이용하는 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top