MapPoint не выключается должным образом? - PullRequest
1 голос
/ 20 ноября 2010

Я пытаюсь использовать COM API MapPoint из VB6, запускаю его в режиме приложения, но когда я закрываю что-то, MapPoint все еще зависает! Как мне заставить его остановиться чисто? Да, я пытался вызвать метод Quit объекта Application.

1 Ответ

3 голосов
/ 20 ноября 2010

Несмотря на недостатки VB6, ваша жизнь на самом деле проще с VB6, так как большинство примеров написано на нем.Также имеется сборщик мусора.

Сначала убедитесь, что для всех ссылок на объекты MapPoint задано значение «ничего» (кроме объекта Application).Это позволит сборщику мусора делать свою работу.Помимо хорошего управления памятью, когда вы закроете MapPoint, сборщик мусора будет знать, что все эти другие объекты могут быть освобождены.MapPoint не закроется, пока все внешние ссылки не будут удалены.Также диалоговое окно спрашивает, хотите ли вы сохранить появившиеся?Это можно удалить с помощью метода Map.Save() для сохранения карты или установив для свойства карты Saved значение true.Это свойство фактически контролирует диалоговое окно.Вы вносите некоторые изменения, и он сбрасывается;Вы сохраняете карту, она установлена.Диалоговое окно появляется, если для него задано значение false.

Затем, наконец, вызовите метод выхода из приложения, а затем для правильной меры удалите ссылку на приложение.

например.

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