2010-11-20 7 views
1

Ich versuche, MapPoint-COM-API von VB6 zu verwenden, es im Anwendungsmodus ausführen, aber wenn ich Dinge schließe, bleibt MapPoint immer noch herum! Wie bekomme ich es sauber zu stoppen? Ja, ich habe versucht, die Quit-Methode des Anwendungsobjekts aufzurufen.MapPoint wird nicht ordnungsgemäß heruntergefahren?

Antwort

3

Trotz der VB6-Fehler ist Ihr Leben mit VB6 einfacher, da die meisten Samples darin geschrieben sind. Außerdem gibt es einen Müllsammler.

Stellen Sie zunächst sicher, dass alle Verweise auf MapPoint-Objekte auf 'nothing' gesetzt sind (mit Ausnahme des Anwendungsobjekts). Dadurch kann der Garbage Collector seine Arbeit erledigen. Wenn Sie MapPoint schließen, erkennt der Garbage Collector nicht nur eine gute Speicherverwaltung, sondern weiß auch, dass alle anderen Objekte freigegeben werden können. MapPoint wird nicht geschlossen, bis alle externen Referenzen gelöscht wurden. Auch das Dialogfeld fragt, ob Sie speichern möchten erscheinen? Dies kann mithilfe der Methode Map.Save() zum Speichern der Map oder durch Festlegen der Eigenschaft Saved der Map auf true behoben werden. Diese Eigenschaft steuert das Dialogfeld tatsächlich. Sie nehmen einige Änderungen vor und es wird zurückgesetzt; Sie speichern die Karte, sie ist festgelegt. Das Dialogfeld wird angezeigt, wenn es auf false festgelegt ist.

Dann schließlich, rufen Sie die Quit-Methode der Anwendung, und dann für eine gute Maßnahme löschen Sie die Anwendungsreferenz.

z.

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

Ja, mir fehlten ein paar nichts Zuteilungen. Der Tipp über Gespeichert wird wahrscheinlich auch nützlich sein. – winwaed