2010-11-20 17 views
1

MapPointのCOM APIをVB6からアプリケーションモードで実行しようとしていますが、終了するとMapPointがまだハングアップしています。どうすればそれをきれいに止めることができますか?はい、私はApplicationオブジェクトのQuitメソッドを呼び出してみました。MapPointが正しくシャットダウンされていませんか?

答えて

3

VB6の不具合があるにもかかわらず、ほとんどのサンプルがVB6で書かれているので、VB6では実際には簡単です。ガベージコレクタもあります。

まず、MapPointオブジェクトへの参照がすべて「なし」(Applicationオブジェクトを除く)に設定されていることを確認します。これにより、ガベージコレクタはその作業を行います。良いメモリ管理と同様に、MapPointを閉じると、ガベージコレクタはこれらの他のオブジェクトをすべて解放できることを知ります。 MapPointは、すべての外部参照がクリアされるまで閉じません。 表示を保存するかどうかを尋ねるダイアログボックスも表示されますか?これは、Map.Save()メソッドを使用してマップを保存するか、またはマップのSavedプロパティをtrueに設定することで削除できます。このプロパティはダイアログボックスを実際に制御します。あなたはいくつかの変更を行い、リセットされます。マップを保存すると設定されます。 falseに設定されている場合、ダイアログボックスが表示されます。

最後に、アプリケーションのQuitメソッドを呼び出してから、適切な対策を講じてアプリケーション参照をクリアします。

例えば、

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

はい私は何も割り当てられていませんでした。 Savedについてのヒントもおそらく便利になるでしょう。 – winwaed

関連する問題