Share via


Dynamic-Link ライブラリ 更新

DLL を新しいバージョンに置き換える必要がある場合があります。 DLL を置き換える前に、バージョン チェックを実行して、古いバージョンを新しいバージョンに置き換えることを確認します。 使用中の DLL を置き換えることができます。 使用中の DLL を置き換えるために使用する方法は、使用しているオペレーティング システムによって異なります。 Windows XP 以降では、アプリケーションで 分離アプリケーションとサイド バイ サイド アセンブリを使用する必要があります。

次の手順を実行する場合は、コンピューターを再起動する必要はありません。

  1. MoveFileEx 関数を使用して、置き換えられる DLL の名前を変更します。 MOVEFILE_COPY_ALLOWEDを指定せず、名前が変更されたファイルが、元のファイルを含むのと同じボリューム上にあることを確認してください。 また、同じディレクトリ内のファイルの名前を別の拡張子にすることで名前を変更することもできます。
  2. 新しい DLL を、名前が変更された DLL を含むディレクトリにコピーします。 これで、すべてのアプリケーションで新しい DLL が使用されるようになります。
  3. MOVEFILE_DELAY_UNTIL_REBOOTで MoveFileEx を使用して、名前が変更された DLL を削除します。

この置換を行う前に、アプリケーションはアンロードされるまで元の DLL を使用します。 置換後、アプリケーションは新しい DLL を使用します。 DLL を作成するときは、特に DLL がグローバル状態情報を保持している場合や他のサービスと通信する場合に、この状況に備えて準備されるように注意する必要があります。 グローバル状態情報または通信プロトコルの変更に備えて DLL が準備されていない場合、DLL を更新するには、すべてのアプリケーションが同じバージョンの DLL を使用していることを確認するために、コンピューターを再起動する必要があります。