ocx 컨트롤에서 호출되는 MFC 대화 상자에서 WPF 사용자 정의 컨트롤을로드해야합니다. 이를 위해 MFC Regular Dll (clr 옵션을 사용할 수있는 혼합 모드 일반 dll)을 만들었습니다.이 HWndSource를 사용하여 wpf 사용자 컨트롤을 호스팅하는 대화 상자를 만들었습니다. 이 내 보낸 대화 상자는 ocx에서 호출되는 MFC 대화 상자 위의 자식 대화 상자로 배치됩니다. Ny 중간 대화 상자는 C++/Cli 코드를 사용합니다.WpfHWndSource를 사용하는 동안 연속 메모리 누수가 발생했습니다.
주 MFC 대화 상자가 닫힐 때 힙에 작성된 중간 대화 상자의 ptr 참조가 삭제됩니다. 그러나 계속 메모리 누수 또는 증가가 계속 된 후에도 거기에서 참조를 삭제합니다. 대화 상자의 소멸자에서 HWndSource 및 wpf 사용자 정의 컨트롤에서 delete를 호출하여 해당 dispose를 호출해야합니다.
하지만 계속해서 누수가 발생합니다.
이와 관련하여 도움이 될 것입니다.
"HWndSource와 wpf 사용자 컨트롤에서 delete를 호출하여 dispose를 호출해야합니다." 응? 1. HWndSource 및 WPF 컨트롤은 관리되는 개체이므로 호출 할 "삭제"가 없습니다. 2. Dispose는 완전히 선택 사항입니다 (메모리를 잊어 버릴 수는 없습니다). 실제로 한 일과 예상했던 일을 분명하게 설명하십시오. –