2010-11-20 4 views
1

MapPoint의 COM API를 VB6에서 응용 프로그램 모드로 실행하려고하는데 MapPoint의 작업을 닫으면 MapPoint가 계속 중단됩니다! 내가 어떻게 그걸 깨끗하게 멈출 수 있니? 예 Application 개체의 Quit 메서드를 호출 해 보았습니다.MapPoint가 제대로 종료되지 않습니까?

답변

3

VB6의 결함에도 불구하고 실제로 대부분의 샘플이 VB6에 기록되어 있으므로 VB6의 경우 실제로 더 쉽습니다. 또한 가비지 수집기가 있습니다.

먼저 MapPoint 개체에 대한 모든 참조가 '없음'(Application 개체 제외)으로 설정되어 있는지 확인하십시오. 이렇게하면 가비지 컬렉터가 작업을 수행하게됩니다. 좋은 메모리 관리뿐만 아니라 MapPoint를 닫을 때 가비지 수집기는 이러한 모든 다른 개체를 해제 할 수 있음을 알게됩니다. MapPoint는 모든 외부 참조가 해제 될 때까지 닫히지 않습니다. 나타나는 대화 상자를 저장할 것인지 묻는 대화 상자가 있습니까? 이것은 Map.Save() 메서드를 사용하여 맵을 저장하거나 Map의 Saved 속성을 true로 설정하여 제거 할 수 있습니다. 이 속성은 실제로 대화 상자를 제어합니다. 당신은 약간의 변경을하고 재설정됩니다; 지도를 저장하면 설정됩니다. false로 설정된 경우 대화 상자가 나타납니다.

그런 다음 마지막으로 응용 프로그램의 종료 메서드를 호출 한 다음 응용 프로그램 참조를 지워야합니다.

예 :

myMapPointApp.ActiveMap.Saved = true 
call myMapPointApp.Quit 
set myMapPointApp = Nothing 
+3

예 몇 가지 과제가 누락되었습니다. Saved에 대한 팁도 도움이 될 것입니다. – winwaed

관련 문제