質問

一つの私のVB6形態では,複数のオブジェ形態とそのメンバ変数.

Private m_frm1 as MyForm
Private m_frm2 as MyForm

// Later...
Set m_frm1 = New MyForm
Set m_frm2 = New MyForm

とは思っ漏洩メモリをこの親会)が作成され、破壊された。る必要があるの割り当てるこれらのメンバ変数を NothingForm_Unload()?

一般的に、時には必要ですか?

解決:この特定のメモリリークを修正していた頃は、 Unload の形で問題のない時を設定し形 Nothing.から受けることになってしまい削除複数のメモリリークによる明示的に設定一部のインスタンスのクラスのモジュール Nothing, ました。

役に立ちましたか?

解決

@マットDillardがあったこれらの設定についてはほとんど何もしなやかに固定し記憶する。

VB6ない正式なごみの収集家のコレクションがあり、何@Konrad Rudolphている。

実際に通話アンロードにフォームのように見えを確保するための最良の方法は、メインフォームの清掃および各サブフォームを掃除を行動します。

いたしましこの空のプロジェクトと空白ます。

Private Sub Form_Load()
  Dim frm As Form2
  Set frm = New Form2
  frm.Show
  Set frm = Nothing
End Sub

実行後にかかわらず、どちらの形式も左に見えます。設定frmについてはほとんど何もかも---います。

後settign frmもののみお取扱いを開このフォーム経由での参考文献をご参照ください。

Unload Forms(1)

私の問題を確認してください。◆

他のヒント

実際、VB6を実装し Rau-α( のようにC++の意味が宣言された参照を自動的に設定 Nothing のブロックです。させていただいております。 すべ 自動的にリセットの会員クラス変数実行後 Class_Terminate.しかし、について報告することは確実です。記憶してない為の厳しい試験では、常にベストプラクティスをリセットのメンバ変数になります。

@マーティン

VB6たに"終了"を書いた"好き"というのを使用し計算書にC#.NET.もちろん、世界んでいることによります。

付終了となのために、というのを決するものではありません"廃棄"末ます。

/で終わる作品をVB6がやってくることを願っていなVB.Netでは、基本的にショートカットオブジェクトのプロパティ、メソッドます。例えば

とaCustomer .名="スカイプを通じたコミュニティ .姓="Smith" 終了

オブジェVBてリファレンスカウンター.このオブジェクトも数多くのオブジェクト変数への参照です。がある場合には、オブジェクトへの参照、オブジェクトはガベージコレクト(が).このプロセスの一部の仕様となります。

デンプレイスの時計広場で地元のインスタンスを生成のオブジェクトが範囲外になる(口の字)、参照カウント低下し、その変数を参照するオブジェクトが破壊されました。つまり、殆どのインスタンスな明示的に設定オブジェクトと等しいかなるコンテンツも出る。

その他のすべてのインスタンスが必要を明示的に設定オブジェクト変数を全く光らないようにして、削減するために、その参照カウントより)してご利用いただけます。設定オブジェクト変数を全く光らないようにして、必ずしも破壊するオブジェクト、また設定を参照。この問題は、特に急性と再帰的データ構造です。

他gotcha、使用時のキーワードオブジェクト変数宣言です。オブジェクトが作成された最初の使用はポンプの新しいキーワードを使用します。用の新しいキーワードを宣言の作成のオブジェクト初回利用時にその参照カウントがゼロになります。設定オブジェクトについてはほとんど何もある破壊したりしようとするものから、そのオブジェクトに自動的に再現場で参照されます。理想的にすべきではないを宣言するのに使用でき、キーワードが使用でき、オペレーターがないこ復活動が変わってきました。

厳密に言えばないものの、このオペレーションを強力なヒントをクリーンもの。

原則として: している時間だったオブジェクトを作成した.

設定VB6への参照をなし、低減するrefecencesカウントとVBは、そのオブジェクトです。なっている場合にのみカウントがゼロのオブジェクトの後廃棄させていただきます。

だとは思わないんだからと言って設定なしますので、ガベージコレクト"のようです。当期純

VB6を使用します。

してください設定を"なし"instanciatedオブジェクトを作referece C/C++のコードやれるというような。いて触ってVB6、僕の設定ファイルを、資源の無です。

いずれにしても、なんだかならないで、という、オブジェクトの後廃棄させていただきます。

VB6たに"終了"を書いた"好き"というのを使用し計算書にC#.NET.もちろん、世界んでいることによります。

覚えていると、いずれの場合も作成の大きなオブジェクトと比べると高価を参考に生きて再利用します。

あったかの問題に似てこら。たいと考えているものであることを防止アプリからでも適用できる。

私は引き上げは、旧コードするとどうなるのかわかりません:

Dim y As Long
For y = 0 To Forms.Count -1
    Unload Forms(x)
Next

できてより安全なものにしようとする荷役のm_frm1.だけではなく設定しています。

一つの重要な点となっていてここでの設定オブジェクト参照になると、オブジェクトのデストラクタの走行(Class_Terminate場合、クラス記述VB)がない場合その他の参照オブジェクトへの参照カウントします。

場合には、使用時rau-α(パターンの終了コードでコードが実行されるため、エラーとなります。ではないかとも思いました場合のADODBます。例えば、クラスがカプセル化ファイルi/o-このコードClass_Terminateが試みを閉じてフラッシュファイルがすでに存在する場合、まだまだ開するため、エラーとなります。

このように設定オブジェクトへの参照もできるエラーに対応しています(正確にどのように依存するのご応募どうを無視するようなエラーを挿入す"のエラー履歴書の次に"直前"にセット---=んなさい").

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top