나는 영원한 라이브러리 (DLL)를 사용하여 특정 파일 형식으로로드하고로드 기능이 실제로로드되지 않는다는 것을 알아 냈습니다. 처음 동일한 객체를 호출 할 때로드되지만 새로운 파일을 열기 위해 다시 호출하면 항상로드되지는 않습니다. 이로 인해 새 파일을로드 할 때마다 CreateObject를 호출해야합니다. 이 문제는 VB6가 이전 개체를 전혀 사용하지 않는 것으로 보이고 RAM 및 VM 사용이 GB로 빠르게 팽창합니다.VB6 CreateObject의 메모리 누수
강제로 해제하는 방법이 있습니까? 변수를 "Nothing"또는 "Null"로 설정하면 아무 것도하지 않고 앱이 너무 부풀어 올라 실제로 메모리가 부족하고 충돌이 발생합니다. (IDE가 너무 오래되어서 Win7에서 제대로 작동하지 않아서 VM 내에서 실행해야합니다.) 잘 작동하지 않습니다.
순환 참조를 찾았지만 아무 것도 없습니다 해당 개체를 사용하여 파일을로드하고 파일의 속성을 ADO 개체로 읽어 들여 실제 파일 자체가 ADO 개체로 참조되는 일은 없으며 다양한 필드 만 포함됩니다.
IDE와 마찬가지로 Win7에서 정상적으로 작동합니다. 관리자로 시작하십시오. – AngryHacker
다른 DLL을 포함하고 있음을 이미 발견 한이 DLL에는 메모리 누수가 없다고 확신합니까? –
예, 제작자가 VBA에서 Excel 또는 C#을 사용하여 DLL을 누출하지 않습니다. – HandOfCode