Windows DLLダイナミックライブラリを生成する際に、一部の関数をDLLにプライベートにし、他のアプリケーションからアクセスできないように、エクスポートする関数を宣言するように求められます。Windows DLLライブラリでデストラクタをエクスポートする必要がありますか?
デストラクタをエクスポートする必要があるのか、コンパイラやWindowsカーネルが自動的に処理するのかについては何も言及していませんか?私がデストラクタをエクスポートしない場合と、エクスポート可能であると宣言したクラスを動的に割り当てる場合、デストラクタがエクスポートされていない場合、そのクラスに対してdeleteを呼び出すことはできますか?
ファクトリファンクションのルートに行くと、C++以外のプログラムでDLLが使用される可能性もあります。これは、誰もが良いことだと思うことを望みます。 –
さて、一般的に、デストラクタをエクスポートするのは悪いことです。私は実際にファクタメソッドを作成に使用することを計画していましたので、先に進むかもしれません。また、明快にするために、同じランタイムが割り当てを解除して割り当てるというような悪い点について、もう少し詳しく説明できますか? –
@IQ:VC2005ランタイムがVC2008のランタイムによって割り当てられたものを削除した場合、メモリ破損やクラッシュなどの原因となるバグを(時には追跡が非常に困難です)実行することができます。 –